git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #141264 from linsui/jami_
commit27710dca715ce03f8a4cbf636c8192fd84b9053f authorDoron Behar <doron.behar@gmail.com> dateSun 24 Oct 2021, 20:36 (5 years ago) parent5bb92df6c7a6bf
16 files changed+588−296
pkgs/applications/networking/instant-messengers/jami/client-gnome.nix+60 pkgs/applications/networking/instant-messengers/jami/client-qt.nix+59 pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common+142 pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linux+18 pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86+10 pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches+5 pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches+20 pkgs/applications/networking/instant-messengers/jami/daemon.nix+123 pkgs/applications/networking/instant-messengers/jami/default.nix+41 pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch+13 pkgs/applications/networking/instant-messengers/jami/libclient.nix+48 pkgs/applications/networking/instant-messengers/jami/update.sh+42 pkgs/applications/networking/instant-messengers/ring-daemon/default.nix−150 pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch−106 pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix−38 pkgs/top-level/all-packages.nix+7−2
pkgs/applications/networking/instant-messengers/jami/client-gnome.nixnew file+60
@@ -0,0 +1,60 @@
1+{ version
2+, src
3+, jami-meta
4+, stdenv
5+, lib
6+, pkg-config
7+, cmake
8+, wrapQtAppsHook
9+, wrapGAppsHook
10+, gtk3-x11
11+, networkmanager # for libnm
12+, libayatana-appindicator
13+, libnotify
14+, clutter-gtk
15+, libcanberra-gtk3
16+, webkitgtk
17+, qrencode
18+, jami-libclient
19+, qttools
20+}:
21+
22+stdenv.mkDerivation {
23+ pname = "jami-client-gnome";
24+ inherit version src;
25+
26+ sourceRoot = "source/client-gnome";
27+
28+ preConfigure = ''
29+ echo ${version} > version.txt
30+ '';
31+
32+ nativeBuildInputs = [
33+ pkg-config
34+ cmake
35+ wrapGAppsHook
36+ wrapQtAppsHook
37+ ];
38+ # To spare double wrapping
39+ dontWrapGApps = true;
40+ preFixup = ''
41+ qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
42+ '';
43+
44+ buildInputs = [
45+ qttools
46+ jami-libclient
47+ gtk3-x11
48+ networkmanager
49+ libayatana-appindicator
50+ libnotify
51+ clutter-gtk
52+ libcanberra-gtk3
53+ webkitgtk
54+ qrencode
55+ ];
56+
57+ meta = jami-meta // {
58+ description = "The client based on GTK" + jami-meta.description;
59+ };
60+}
pkgs/applications/networking/instant-messengers/jami/client-qt.nixnew file+59
@@ -0,0 +1,59 @@
1+{ version
2+, src
3+, jami-meta
4+, mkDerivation
5+, lib
6+, pkg-config
7+, cmake
8+, networkmanager # for libnm
9+, python3
10+, qttools # for translations
11+, wrapQtAppsHook
12+, libnotify
13+, qrencode
14+, qtwebengine
15+, qtdeclarative
16+, qtquickcontrols2
17+, qtmultimedia
18+, qtsvg
19+, qtwebchannel
20+, qtgraphicaleffects # no gui without this
21+, jami-libclient
22+}:
23+
24+mkDerivation {
25+ pname = "jami-client-qt";
26+ inherit version src;
27+
28+ sourceRoot = "source/client-qt";
29+
30+ preConfigure = ''
31+ python gen-resources.py
32+ echo 'const char VERSION_STRING[] = "${version}";' > src/version.h
33+ '';
34+
35+ nativeBuildInputs = [
36+ pkg-config
37+ cmake
38+ python3
39+ qttools
40+ ];
41+
42+ buildInputs = [
43+ jami-libclient
44+ networkmanager
45+ libnotify
46+ qrencode
47+ qtwebengine
48+ qtdeclarative
49+ qtquickcontrols2
50+ qtmultimedia
51+ qtsvg
52+ qtwebchannel
53+ qtgraphicaleffects
54+ ];
55+
56+ meta = jami-meta // {
57+ description = "The client based on QT" + jami-meta.description;
58+ };
59+}
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_commonnew file+142
@@ -0,0 +1,142 @@
1+--disable-everything
2+--enable-zlib
3+--enable-gpl
4+--enable-swscale
5+--enable-bsfs
6+--disable-filters
7+--disable-programs
8+--disable-postproc
9+--disable-protocols
10+--enable-protocol=crypto
11+--enable-protocol=file
12+--enable-protocol=rtp
13+--enable-protocol=srtp
14+--enable-protocol=tcp
15+--enable-protocol=udp
16+--enable-protocol=unix
17+--enable-protocol=pipe
18+--disable-demuxers
19+--disable-muxers
20+--enable-muxer=rtp
21+--enable-muxer=g722
22+--enable-muxer=h263
23+--enable-muxer=h264
24+--enable-muxer=hevc
25+--enable-muxer=webm
26+--enable-muxer=ogg
27+--enable-muxer=pcm_s16be
28+--enable-muxer=pcm_s16le
29+--enable-demuxer=rtp
30+--enable-demuxer=mjpeg
31+--enable-demuxer=mjpeg_2000
32+--enable-demuxer=mpegvideo
33+--enable-demuxer=gif
34+--enable-demuxer=image_jpeg_pipe
35+--enable-demuxer=image_png_pipe
36+--enable-demuxer=image_webp_pipe
37+--enable-demuxer=matroska
38+--enable-demuxer=m4v
39+--enable-demuxer=mp3
40+--enable-demuxer=ogg
41+--enable-demuxer=flac
42+--enable-demuxer=wav
43+--enable-demuxer=ac3
44+--enable-demuxer=g722
45+--enable-demuxer=pcm_mulaw
46+--enable-demuxer=pcm_alaw
47+--enable-demuxer=pcm_s16be
48+--enable-demuxer=pcm_s16le
49+--enable-demuxer=h263
50+--enable-demuxer=h264
51+--enable-demuxer=hevc
52+--enable-parser=h263
53+--enable-parser=h264
54+--enable-parser=hevc
55+--enable-parser=mpeg4video
56+--enable-parser=vp8
57+--enable-parser=vp9
58+--enable-parser=opus
59+--enable-encoder=adpcm_g722
60+--enable-decoder=adpcm_g722
61+--enable-encoder=rawvideo
62+--enable-decoder=rawvideo
63+--enable-encoder=libx264
64+--enable-decoder=h264
65+--enable-encoder=pcm_alaw
66+--enable-decoder=pcm_alaw
67+--enable-encoder=pcm_mulaw
68+--enable-decoder=pcm_mulaw
69+--enable-encoder=mpeg4
70+--enable-decoder=mpeg4
71+--enable-encoder=libvpx_vp8
72+--enable-decoder=vp8
73+--enable-decoder=vp9
74+--enable-encoder=h263
75+--enable-encoder=h263p
76+--enable-decoder=h263
77+--enable-encoder=mjpeg
78+--enable-decoder=mjpeg
79+--enable-decoder=mjpegb
80+--enable-libspeex
81+--enable-libopus
82+--enable-libvpx
83+--enable-libx264
84+--enable-encoder=libspeex
85+--enable-decoder=libspeex
86+--enable-encoder=libopus
87+--enable-decoder=libopus
88+--enable-decoder=flac
89+--enable-decoder=vorbis
90+--enable-decoder=aac
91+--enable-decoder=ac3
92+--enable-decoder=eac3
93+--enable-decoder=mp3
94+--enable-decoder=pcm_u24be
95+--enable-decoder=pcm_u24le
96+--enable-decoder=pcm_u32be
97+--enable-decoder=pcm_u32le
98+--enable-decoder=pcm_u8
99+--enable-decoder=pcm_f16le
100+--enable-decoder=pcm_f24le
101+--enable-decoder=pcm_f32be
102+--enable-decoder=pcm_f32le
103+--enable-decoder=pcm_f64be
104+--enable-decoder=pcm_f64le
105+--enable-decoder=pcm_s16be
106+--enable-decoder=pcm_s16be_planar
107+--enable-decoder=pcm_s16le
108+--enable-decoder=pcm_s16le_planar
109+--enable-decoder=pcm_s24be
110+--enable-decoder=pcm_s24le
111+--enable-decoder=pcm_s24le_planar
112+--enable-decoder=pcm_s32be
113+--enable-decoder=pcm_s32le
114+--enable-decoder=pcm_s32le_planar
115+--enable-decoder=pcm_s64be
116+--enable-decoder=pcm_s64le
117+--enable-decoder=pcm_s8
118+--enable-decoder=pcm_s8_planar
119+--enable-decoder=pcm_u16be
120+--enable-decoder=pcm_u16le
121+--enable-encoder=gif
122+--enable-decoder=gif
123+--enable-encoder=jpegls
124+--enable-decoder=jpegls
125+--enable-encoder=ljpeg
126+--enable-decoder=jpeg2000
127+--enable-encoder=png
128+--enable-decoder=png
129+--enable-encoder=bmp
130+--enable-decoder=bmp
131+--enable-encoder=tiff
132+--enable-decoder=tiff
133+--enable-filter=scale
134+--enable-filter=overlay
135+--enable-filter=amix
136+--enable-filter=amerge
137+--enable-filter=aresample
138+--enable-filter=format
139+--enable-filter=aformat
140+--enable-filter=fps
141+--enable-filter=transpose
142+--enable-filter=pad
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linuxnew file+18
@@ -0,0 +1,18 @@
1+--enable-pic
2+--target-os=linux
3+--enable-indev=v4l2
4+--enable-indev=xcbgrab
5+--enable-vdpau
6+--enable-hwaccel=h264_vdpau
7+--enable-hwaccel=mpeg4_vdpau
8+--enable-vaapi
9+--enable-hwaccel=h264_vaapi
10+--enable-hwaccel=mpeg4_vaapi
11+--enable-hwaccel=h263_vaapi
12+--enable-hwaccel=vp8_vaapi
13+--enable-hwaccel=mjpeg_vaapi
14+--enable-hwaccel=hevc_vaapi
15+--enable-encoder=h264_vaapi
16+--enable-encoder=vp8_vaapi
17+--enable-encoder=mjpeg_vaapi
18+--enable-encoder=hevc_vaapi
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86new file+10
@@ -0,0 +1,10 @@
1+--enable-cuvid
2+--enable-ffnvcodec
3+--enable-nvdec
4+--enable-nvenc
5+--enable-hwaccel=h264_nvdec
6+--enable-hwaccel=hevc_nvdec
7+--enable-hwaccel=vp8_nvdec
8+--enable-hwaccel=mjpeg_nvdec
9+--enable-encoder=h264_nvenc
10+--enable-encoder=hevc_nvenc
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patchesnew file+5
@@ -0,0 +1,5 @@
1+remove-mjpeg-log.patch
2+change-RTCP-ratio.patch
3+rtp_ext_abs_send_time.patch
4+libopusdec-enable-FEC.patch
5+libopusenc-enable-FEC.patch
pkgs/applications/networking/instant-messengers/jami/config/pjsip_patchesnew file+20
@@ -0,0 +1,20 @@
1+0001-rfc6544.patch
2+0002-rfc2466.patch
3+0003-add-tcp-keep-alive.patch
4+0004-multiple_listeners.patch
5+0005-fix_ebusy_turn.patch
6+0006-ignore_ipv6_on_transport_check.patch
7+0007-upnp-srflx-nat-assisted-cand.patch
8+0008-fix_ioqueue_ipv6_sendto.patch
9+0009-add-config-site.patch
10+0010-fix-tcp-death-detection.patch
11+0011-fix-turn-shutdown-crash.patch
12+0012-ignore-down-interfaces.patch
13+0013-ignore-addresses-for-RFC7335.patch
14+0014-fix-socket-leak.patch
15+0015-fix-socktype-and-duplicate-checking.patch
16+0016-use-larger-Ta-interval.patch
17+0017-auto-register-thread.patch
18+0018-fix-ioqueue-lock-acquire.patch
19+0019-resort-check-list-after-adding-prflx.patch
20+0020-avoid-immediate-nominating-triggered-check.patch
pkgs/applications/networking/instant-messengers/jami/daemon.nixnew file+123
@@ -0,0 +1,123 @@
1+{ src
2+, version
3+, jami-meta
4+, stdenv
5+, lib
6+, autoreconfHook
7+, pkg-config
8+, perl # for pod2man
9+, ffmpeg
10+, pjsip
11+, alsa-lib
12+, asio
13+, dbus
14+, dbus_cplusplus
15+, fmt
16+, gmp
17+, libarchive
18+, libgit2
19+, libnatpmp
20+, secp256k1
21+, openssl
22+, opendht
23+, speex
24+, webrtc-audio-processing
25+, jsoncpp
26+, gnutls
27+, zlib
28+, libyamlcpp
29+, libpulseaudio
30+, jack
31+, udev
32+, libupnp
33+, msgpack
34+, restinio
35+, http-parser
36+}:
37+
38+let
39+ readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file));
40+
41+ ffmpeg-jami = ffmpeg.overrideAttrs (old:
42+ let
43+ patch-src = src + "/daemon/contrib/src/ffmpeg/";
44+ in
45+ {
46+ patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches));
47+ configureFlags = old.configureFlags
48+ ++ (readLinesToList ./config/ffmpeg_args_common)
49+ ++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux)
50+ ++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86);
51+ outputs = [ "out" "doc" ];
52+ });
53+
54+ pjsip-jami = pjsip.overrideAttrs (old:
55+ let
56+ patch-src = src + "/daemon/contrib/src/pjproject/";
57+ in
58+ {
59+ patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
60+ });
61+
62+ opendht-jami = opendht.override {
63+ enableProxyServerAndClient = true;
64+ enablePushNotifications = true;
65+ };
66+
67+in stdenv.mkDerivation {
68+ pname = "jami-daemon";
69+ inherit src version;
70+ sourceRoot = "source/daemon";
71+
72+ nativeBuildInputs = [
73+ autoreconfHook
74+ pkg-config
75+ perl
76+ ];
77+
78+ buildInputs = [
79+ alsa-lib
80+ asio
81+ dbus
82+ dbus_cplusplus
83+ fmt
84+ ffmpeg-jami
85+ gmp
86+ gnutls
87+ libarchive
88+ libgit2
89+ libnatpmp
90+ opendht-jami
91+ pjsip-jami
92+ secp256k1
93+ openssl
94+ speex
95+ webrtc-audio-processing
96+ zlib
97+ libyamlcpp
98+ jsoncpp
99+ libpulseaudio
100+ jack
101+ opendht
102+ libupnp
103+ udev
104+ msgpack
105+ restinio
106+ http-parser
107+ ];
108+
109+ doCheck = false; # The tests fail to compile due to missing headers.
110+
111+ enableParallelBuilding = true;
112+
113+ passthru = {
114+ updateScript = ./update.sh;
115+ ffmpeg = ffmpeg-jami;
116+ pjsip = pjsip-jami;
117+ opendht = opendht-jami;
118+ };
119+
120+ meta = jami-meta // {
121+ description = "The daemon" + jami-meta.description;
122+ };
123+}
pkgs/applications/networking/instant-messengers/jami/default.nixnew file+41
@@ -0,0 +1,41 @@
1+{ stdenv
2+, lib
3+, callPackage
4+, fetchzip
5+, jack
6+, udev
7+, libsForQt5
8+}:
9+
10+rec {
11+ version = "20211005.2.251ac7d";
12+
13+ src = fetchzip {
14+ url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
15+ sha256 = "12ppbwhnk5zajb73szd04sz80bp17q577bkb9j8p45apvq201db3";
16+
17+ stripRoot = false;
18+ extraPostFetch = ''
19+ cd $out
20+ mv ring-project/* ./
21+ rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp
22+ rm daemon/contrib/tarballs/*
23+ '';
24+ };
25+
26+ jami-meta = with lib; {
27+ homepage = "https://jami.net/";
28+ description = " for Jami, the free and universal communication platform that respects the privacy and freedoms of its users";
29+ license = licenses.gpl3Plus;
30+ platforms = platforms.linux;
31+ maintainers = [ maintainers.linsui ];
32+ };
33+
34+ jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; };
35+
36+ jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; };
37+
38+ jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; };
39+
40+ jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; };
41+}
pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git i/CMakeLists.txt w/CMakeLists.txt
2+index 0ee77dba..767e19df 100644
3+--- i/CMakeLists.txt
4++++ w/CMakeLists.txt
5+@@ -635,7 +635,7 @@ if(ENABLE_SHARED)
6+ )
7+ endif()
8+
9+-SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
10++SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR})
11+
12+ INSTALL( FILES ${libringclient_LIB_HDRS} ${libringclient_extra_LIB_HDRS}
13+ DESTINATION ${INCLUDE_INSTALL_DIR}/libringclient
pkgs/applications/networking/instant-messengers/jami/libclient.nixnew file+48
@@ -0,0 +1,48 @@
1+{ version
2+, src
3+, jami-meta
4+, stdenv
5+, lib
6+, pkg-config
7+, cmake
8+, qtbase
9+, jami-daemon
10+}:
11+
12+stdenv.mkDerivation {
13+ pname = "jami-libclient";
14+ inherit version src;
15+
16+ sourceRoot = "source/lrc";
17+
18+ nativeBuildInputs = [
19+ cmake
20+ pkg-config
21+ ];
22+
23+ buildInputs = [
24+ jami-daemon
25+ ];
26+
27+ patches = [
28+ # Fix path to include dir when using split outputs
29+ ./libclient-include-path.patch
30+ ];
31+
32+ propagatedBuildInputs = [
33+ qtbase
34+ ];
35+ outputs = [ "out" "dev" ];
36+
37+ cmakeFlags = [
38+ "-DRING_BUILD_DIR=${jami-daemon}/include"
39+ "-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces"
40+ ];
41+
42+ dontWrapQtApps = true;
43+
44+ meta = jami-meta // {
45+ description = "The client library" + jami-meta.description;
46+ license = lib.licenses.lgpl21Plus;
47+ };
48+}
pkgs/applications/networking/instant-messengers/jami/update.shnew file+42
@@ -0,0 +1,42 @@
1+#!/usr/bin/env nix-shell
2+#!nix-shell -i bash -p coreutils curl gnused common-updater-scripts
3+
4+set -e
5+
6+jami_dir="$( dirname "${BASH_SOURCE[0]}" )"
7+
8+# Update src version and hash
9+version=$(curl -s 'https://dl.jami.net/release/tarballs/?C=M;O=D' | sed -n -E 's/^.*jami_([0-9.a-f]+)\.tar\.gz.*$/\1/p' | head -n 1)
10+update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix
11+
12+src=$(nix-build --no-out-link -A jami-libclient.src)
13+
14+config_dir="$jami_dir/config"
15+mkdir -p $config_dir
16+
17+ffmpeg_rules="${src}/daemon/contrib/src/ffmpeg/rules.mak"
18+
19+# Update FFmpeg patches
20+ffmpeg_patches=$(sed -n '/.sum-ffmpeg:/,/HAVE_IOS/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p')
21+echo -e "Patches for FFmpeg:\n${ffmpeg_patches}\n"
22+echo "${ffmpeg_patches}" > "$config_dir/ffmpeg_patches"
23+
24+# Update FFmpeg args
25+ffmpeg_args_common=$(sed -n '/#disable everything/,/#platform specific options/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
26+echo -e "Common args for FFmpeg:\n${ffmpeg_args_common}\n"
27+echo "${ffmpeg_args_common}" > "$config_dir/ffmpeg_args_common"
28+
29+ffmpeg_args_linux1=$(sed -n '/ifdef HAVE_LINUX/,/ifdef HAVE_ANDROID/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
30+ffmpeg_args_linux2=$(sed -n '/# Desktop Linux/,/i386 x86_64/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
31+echo -e "Linux args for FFmpeg:\n${ffmpeg_args_linux1}\n${ffmpeg_args_linux2}\n"
32+echo "${ffmpeg_args_linux1}" > "$config_dir/ffmpeg_args_linux"
33+echo "${ffmpeg_args_linux2}" >> "$config_dir/ffmpeg_args_linux"
34+
35+ffmpeg_args_x86=$(sed -n '/i386 x86_64/,/# End Desktop Linux:/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
36+echo -e "x86 args for FFmpeg:\n${ffmpeg_args_x86}\n"
37+echo "${ffmpeg_args_x86}" > "$config_dir/ffmpeg_args_x86"
38+
39+# Update pjsip patches
40+pjsip_patches=$(sed -n '/UNPACK/,/HAVE_ANDROID/p' ${src}/daemon/contrib/src/pjproject/rules.mak | sed -n -E 's/.*pjproject\/(00.*patch).*/\1/p')
41+echo -e "Patches for pjsip:\n${pjsip_patches}\n"
42+echo "${pjsip_patches}" > "$config_dir/pjsip_patches"
pkgs/applications/networking/instant-messengers/ring-daemon/default.nixdeleted−150
@@ -1,150 +0,0 @@
1−{ lib, stdenv
2−, fetchgit
3−, which
4−, autoreconfHook
5−, pkg-config
6−, automake
7−, libtool
8−, pjsip
9−, libyamlcpp
10−, alsa-lib
11−, libpulseaudio
12−, libsamplerate
13−, libsndfile
14−, dbus
15−, dbus_cplusplus
16−, ffmpeg_3
17−, udev
18−, pcre
19−, gsm
20−, speex
21−, boost
22−, opendht
23−, msgpack
24−, gnutls
25−, zlib
26−, jsoncpp
27−, xorg
28−, libargon2
29−, cryptopp
30−, openssl
31−, perl
32−, python3
33−, libupnp
34−, speexdsp
35−, fetchFromGitHub
36−, cmake
37−, asio
38−}:
39−
40−let
41− myPython = python3.withPackages (ps: with ps; [
42− pygobject3
43− dbus-python
44− ]);
45−
46− src = fetchgit {
47− url = "https://gitlab.savoirfairelinux.com/ring/ring-daemon.git";
48− rev = "006b8dc7be08fe9beb68709af71004e7bc1ceb5c";
49− sha256 = "0ih9g0rismrhx6nqcy3jqfbcs166grg0shnfmrnmykl9h0xy8z47";
50− };
51−
52− patchdir = "${src}/contrib/src";
53−
54− restbed = import ./restbed.nix {
55− inherit stdenv lib fetchFromGitHub cmake asio openssl;
56− patches = [
57− "${patchdir}/restbed/CMakeLists.patch"
58− "${patchdir}/restbed/strand.patch"
59− "${patchdir}/restbed/uri_cpp.patch"
60− "${patchdir}/restbed/dns-resolution-error.patch"
61− "${patchdir}/restbed/string.patch"
62− ];
63− };
64−
65− pjsip' = lib.overrideDerivation pjsip (old: {
66− patches = [
67− "${patchdir}/pjproject/gnutls.patch"
68− ./notestsapps.patch # this one had to be modified
69− "${patchdir}/pjproject/fix_base64.patch"
70− "${patchdir}/pjproject/ipv6.patch"
71− "${patchdir}/pjproject/ice_config.patch"
72− "${patchdir}/pjproject/multiple_listeners.patch"
73− "${patchdir}/pjproject/pj_ice_sess.patch"
74− "${patchdir}/pjproject/fix_turn_fallback.patch"
75− "${patchdir}/pjproject/fix_ioqueue_ipv6_sendto.patch"
76− "${patchdir}/pjproject/add_dtls_transport.patch"
77− ];
78− CFLAGS = "-g -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000";
79− });
80−in
81−stdenv.mkDerivation {
82− pname = "ring-daemon";
83− version = "2017-07-11";
84−
85− inherit src;
86−
87− nativeBuildInputs = [
88− which
89− autoreconfHook
90− automake
91− libtool
92− pkg-config
93− ];
94−
95− buildInputs = [
96− pjsip'
97− libyamlcpp
98− alsa-lib
99− libpulseaudio
100− libsamplerate
101− libsndfile
102− dbus
103− dbus_cplusplus
104− ffmpeg_3
105− udev
106− pcre
107− gsm
108− speex
109− boost
110− opendht
111− msgpack
112− gnutls
113− zlib
114− jsoncpp
115− restbed
116− xorg.libX11
117− libargon2
118− cryptopp
119− openssl
120− perl
121− libupnp
122− speexdsp
123− ];
124−
125− postInstall = ''
126− mkdir $out/bin
127− ln -s $out/lib/ring/dring $out/bin/dring
128− cp -R ./tools/dringctrl/ $out/
129− substitute ./tools/dringctrl/dringctrl.py $out/dringctrl/dringctrl.py \
130− --replace '#!/usr/bin/env python3' "#!${myPython}/bin/python3"
131− chmod +x $out/dringctrl/dringctrl.py
132− ln -s $out/dringctrl/dringctrl.py $out/bin/dringctrl.py
133− '';
134−
135− meta = with lib; {
136− description = "A Voice-over-IP software phone";
137− longDescription = ''
138− As the SIP/audio daemon and the user interface are separate processes, it
139− is easy to provide different user interfaces. GNU Ring comes with various
140− graphical user interfaces and even scripts to control the daemon from the
141− shell.
142− '';
143− homepage = "https://ring.cx";
144− license = licenses.gpl3Plus;
145− maintainers = with maintainers; [ taeer olynch ];
146− platforms = platforms.linux;
147− # pjsip' fails to compile with the supplied patch set, see: https://hydra.nixos.org/build/68667921/nixlog/4
148− broken = true;
149− };
150−}
pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patchdeleted−106
@@ -1,106 +0,0 @@
1−/* diff --git a/Makefile b/Makefile */
2−/* index 33a4e6b..a486eb7 100644 */
3−/* --- a/Makefile */
4−/* +++ b/Makefile */
5−/* @@ -4,7 +4,7 @@ include build/host-$(HOST_NAME).mak */
6−/* include version.mak */
7−
8−/* LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build */
9−/* -DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS) */
10−/* +DIRS = $(LIB_DIRS) $(EXTRA_DIRS) */
11−
12−/* ifdef MINSIZE */
13−/* MAKE_FLAGS := MINSIZE=1 */
14−diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile
15−index cb601cb..862a78a 100644
16−--- a/pjlib-util/build/Makefile
17−+++ b/pjlib-util/build/Makefile
18−@@ -54,7 +54,6 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \
19− export UTIL_TEST_CFLAGS += $(_CFLAGS)
20− export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS)
21− export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
22−-export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE)
23−
24−
25− export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
26−diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile
27−index 1e64950..a75fa65 100644
28−--- a/pjlib/build/Makefile
29−+++ b/pjlib/build/Makefile
30−@@ -56,7 +56,6 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
31− export TEST_CFLAGS += $(_CFLAGS)
32− export TEST_CXXFLAGS += $(_CXXFLAGS)
33− export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS)
34−-export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE)
35−
36−
37− export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
38−diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile
39−index 8012cb7..2ca283a 100644
40−--- a/pjmedia/build/Makefile
41−+++ b/pjmedia/build/Makefile
42−@@ -165,7 +165,6 @@ export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \
43− $(PJLIB_UTIL_LDLIB) \
44− $(PJNATH_LDLIB) \
45− $(_LDFLAGS)
46−-export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
47−
48−
49− export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
50−diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile
51−index 1bc08b5..109f79b 100644
52−--- a/pjnath/build/Makefile
53−+++ b/pjnath/build/Makefile
54−@@ -54,7 +54,6 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o
55− export PJNATH_TEST_CFLAGS += $(_CFLAGS)
56− export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS)
57− export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
58−-export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE)
59−
60−
61− ###############################################################################
62−@@ -65,7 +64,6 @@ export PJTURN_CLIENT_OBJS += client_main.o
63− export PJTURN_CLIENT_CFLAGS += $(_CFLAGS)
64− export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS)
65− export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
66−-export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE)
67−
68− ###############################################################################
69− # Defines for building TURN server application
70−@@ -76,7 +74,6 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \
71− export PJTURN_SRV_CFLAGS += $(_CFLAGS)
72− export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS)
73− export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
74−-export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE)
75−
76−
77−
78−diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
79−index d2a5c2a..7e2ec60 100644
80−--- a/pjsip/build/Makefile
81−+++ b/pjsip/build/Makefile
82−@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
83− account.o endpoint.o json.o persistent.o types.o \
84− siptypes.o call.o presence.o media.o
85− export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
86−-export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
87−+export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
88− export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \
89− $(PJSIP_UA_LDLIB) \
90− $(PJSIP_SIMPLE_LDLIB) \
91−@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
92− export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
93− export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
94− export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS)
95−-export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE)
96−
97− export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
98−
99−@@ -195,7 +194,6 @@ export TEST_LDFLAGS += $(PJSIP_LDLIB) \
100− $(PJLIB_UTIL_LDLIB) \
101− $(PJNATH_LDLIB) \
102− $(_LDFLAGS)
103−-export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE)
104−
105−
106− export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nixdeleted−38
@@ -1,38 +0,0 @@
1−{ lib, stdenv
2−, fetchFromGitHub
3−, cmake
4−, asio
5−, openssl
6−, patches
7−}:
8−
9−stdenv.mkDerivation {
10− pname = "restbed";
11− version = "2016-09-15";
12−
13− src = fetchFromGitHub {
14− owner = "Corvusoft";
15− repo = "restbed";
16− rev = "34187502642144ab9f749ab40f5cdbd8cb17a54a";
17− sha256 = "1jb38331fcicyiisqdprhq6zwfc6g518fm3l4qw9aiv5k9nqim22";
18− };
19−
20− inherit patches;
21−
22− nativeBuildInputs = [ cmake ];
23− buildInputs = [ asio openssl ];
24−
25− meta = with lib; {
26− description = "HTTP framework for building networked applications";
27− longDescription = ''
28− HTTP framework for building networked applications that require seamless
29− and secure communication, with the flexability to model a range of
30− business processes. Targeting mobile, tablet, desktop, and embedded
31− production environments.
32− '';
33− homepage = "https://corvusoft.co.uk/";
34− license = licenses.agpl3;
35− maintainers = with maintainers; [ taeer ];
36− platforms = platforms.linux;
37− };
38−}
pkgs/top-level/all-packages.nix+7−2
@@ -3532,8 +3532,6 @@ with pkgs;
35323532
35333533 replay-sorcery = callPackage ../tools/video/replay-sorcery { };
35343534
3535− ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
3536−
35373535 ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
35383536 inherit (darwin.apple_sdk.frameworks) AppKit Security;
35393537 };
@@ -33409,6 +33407,13 @@ with pkgs;
3340933407
3341033408 btcdeb = callPackage ../applications/blockchains/btcdeb { };
3341133409
33410+ inherit (callPackage ../applications/networking/instant-messengers/jami {
33411+ # TODO: remove once `udev` is `systemdMinimal` everywhere.
33412+ udev = systemdMinimal;
33413+ jack = libjack2;
33414+ })
33415+ jami-daemon jami-libclient jami-client-gnome jami-client-qt;
33416+
3341233417 jitsi-meet-electron = callPackage ../applications/networking/instant-messengers/jitsi-meet-electron {
3341333418 electron = electron_13;
3341433419 };