Merge pull request #141264 from linsui/jami_

authored by Doron Behar and committed by GitHub 27710dca 5bb92dfe

+588 -296
+60
pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
··· 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 + }
+59
pkgs/applications/networking/instant-messengers/jami/client-qt.nix
··· 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 + }
+142
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
··· 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
+18
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linux
··· 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
+10
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86
··· 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
+5
pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
··· 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
+20
pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches
··· 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
+123
pkgs/applications/networking/instant-messengers/jami/daemon.nix
··· 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 + }
+41
pkgs/applications/networking/instant-messengers/jami/default.nix
··· 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 + }
+13
pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch
··· 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
+48
pkgs/applications/networking/instant-messengers/jami/libclient.nix
··· 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 + }
+42
pkgs/applications/networking/instant-messengers/jami/update.sh
··· 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"
-150
pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
··· 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 - }
-106
pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch
··· 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
-38
pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
··· 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 - }
+7 -2
pkgs/top-level/all-packages.nix
··· 3532 3532 3533 3533 replay-sorcery = callPackage ../tools/video/replay-sorcery { }; 3534 3534 3535 - ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { }; 3536 - 3537 3535 ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix { 3538 3536 inherit (darwin.apple_sdk.frameworks) AppKit Security; 3539 3537 }; ··· 33408 33406 fluxboxlauncher = callPackage ../applications/misc/fluxboxlauncher {}; 33409 33407 33410 33408 btcdeb = callPackage ../applications/blockchains/btcdeb { }; 33409 + 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; 33411 33416 33412 33417 jitsi-meet-electron = callPackage ../applications/networking/instant-messengers/jitsi-meet-electron { 33413 33418 electron = electron_13;