Merge pull request #141264 from linsui/jami_
This commit is contained in:
commit
27710dca71
@ -0,0 +1,60 @@
|
||||
{ version
|
||||
, src
|
||||
, jami-meta
|
||||
, stdenv
|
||||
, lib
|
||||
, pkg-config
|
||||
, cmake
|
||||
, wrapQtAppsHook
|
||||
, wrapGAppsHook
|
||||
, gtk3-x11
|
||||
, networkmanager # for libnm
|
||||
, libayatana-appindicator
|
||||
, libnotify
|
||||
, clutter-gtk
|
||||
, libcanberra-gtk3
|
||||
, webkitgtk
|
||||
, qrencode
|
||||
, jami-libclient
|
||||
, qttools
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "jami-client-gnome";
|
||||
inherit version src;
|
||||
|
||||
sourceRoot = "source/client-gnome";
|
||||
|
||||
preConfigure = ''
|
||||
echo ${version} > version.txt
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cmake
|
||||
wrapGAppsHook
|
||||
wrapQtAppsHook
|
||||
];
|
||||
# To spare double wrapping
|
||||
dontWrapGApps = true;
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
qttools
|
||||
jami-libclient
|
||||
gtk3-x11
|
||||
networkmanager
|
||||
libayatana-appindicator
|
||||
libnotify
|
||||
clutter-gtk
|
||||
libcanberra-gtk3
|
||||
webkitgtk
|
||||
qrencode
|
||||
];
|
||||
|
||||
meta = jami-meta // {
|
||||
description = "The client based on GTK" + jami-meta.description;
|
||||
};
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
{ version
|
||||
, src
|
||||
, jami-meta
|
||||
, mkDerivation
|
||||
, lib
|
||||
, pkg-config
|
||||
, cmake
|
||||
, networkmanager # for libnm
|
||||
, python3
|
||||
, qttools # for translations
|
||||
, wrapQtAppsHook
|
||||
, libnotify
|
||||
, qrencode
|
||||
, qtwebengine
|
||||
, qtdeclarative
|
||||
, qtquickcontrols2
|
||||
, qtmultimedia
|
||||
, qtsvg
|
||||
, qtwebchannel
|
||||
, qtgraphicaleffects # no gui without this
|
||||
, jami-libclient
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "jami-client-qt";
|
||||
inherit version src;
|
||||
|
||||
sourceRoot = "source/client-qt";
|
||||
|
||||
preConfigure = ''
|
||||
python gen-resources.py
|
||||
echo 'const char VERSION_STRING[] = "${version}";' > src/version.h
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cmake
|
||||
python3
|
||||
qttools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
jami-libclient
|
||||
networkmanager
|
||||
libnotify
|
||||
qrencode
|
||||
qtwebengine
|
||||
qtdeclarative
|
||||
qtquickcontrols2
|
||||
qtmultimedia
|
||||
qtsvg
|
||||
qtwebchannel
|
||||
qtgraphicaleffects
|
||||
];
|
||||
|
||||
meta = jami-meta // {
|
||||
description = "The client based on QT" + jami-meta.description;
|
||||
};
|
||||
}
|
@ -0,0 +1,142 @@
|
||||
--disable-everything
|
||||
--enable-zlib
|
||||
--enable-gpl
|
||||
--enable-swscale
|
||||
--enable-bsfs
|
||||
--disable-filters
|
||||
--disable-programs
|
||||
--disable-postproc
|
||||
--disable-protocols
|
||||
--enable-protocol=crypto
|
||||
--enable-protocol=file
|
||||
--enable-protocol=rtp
|
||||
--enable-protocol=srtp
|
||||
--enable-protocol=tcp
|
||||
--enable-protocol=udp
|
||||
--enable-protocol=unix
|
||||
--enable-protocol=pipe
|
||||
--disable-demuxers
|
||||
--disable-muxers
|
||||
--enable-muxer=rtp
|
||||
--enable-muxer=g722
|
||||
--enable-muxer=h263
|
||||
--enable-muxer=h264
|
||||
--enable-muxer=hevc
|
||||
--enable-muxer=webm
|
||||
--enable-muxer=ogg
|
||||
--enable-muxer=pcm_s16be
|
||||
--enable-muxer=pcm_s16le
|
||||
--enable-demuxer=rtp
|
||||
--enable-demuxer=mjpeg
|
||||
--enable-demuxer=mjpeg_2000
|
||||
--enable-demuxer=mpegvideo
|
||||
--enable-demuxer=gif
|
||||
--enable-demuxer=image_jpeg_pipe
|
||||
--enable-demuxer=image_png_pipe
|
||||
--enable-demuxer=image_webp_pipe
|
||||
--enable-demuxer=matroska
|
||||
--enable-demuxer=m4v
|
||||
--enable-demuxer=mp3
|
||||
--enable-demuxer=ogg
|
||||
--enable-demuxer=flac
|
||||
--enable-demuxer=wav
|
||||
--enable-demuxer=ac3
|
||||
--enable-demuxer=g722
|
||||
--enable-demuxer=pcm_mulaw
|
||||
--enable-demuxer=pcm_alaw
|
||||
--enable-demuxer=pcm_s16be
|
||||
--enable-demuxer=pcm_s16le
|
||||
--enable-demuxer=h263
|
||||
--enable-demuxer=h264
|
||||
--enable-demuxer=hevc
|
||||
--enable-parser=h263
|
||||
--enable-parser=h264
|
||||
--enable-parser=hevc
|
||||
--enable-parser=mpeg4video
|
||||
--enable-parser=vp8
|
||||
--enable-parser=vp9
|
||||
--enable-parser=opus
|
||||
--enable-encoder=adpcm_g722
|
||||
--enable-decoder=adpcm_g722
|
||||
--enable-encoder=rawvideo
|
||||
--enable-decoder=rawvideo
|
||||
--enable-encoder=libx264
|
||||
--enable-decoder=h264
|
||||
--enable-encoder=pcm_alaw
|
||||
--enable-decoder=pcm_alaw
|
||||
--enable-encoder=pcm_mulaw
|
||||
--enable-decoder=pcm_mulaw
|
||||
--enable-encoder=mpeg4
|
||||
--enable-decoder=mpeg4
|
||||
--enable-encoder=libvpx_vp8
|
||||
--enable-decoder=vp8
|
||||
--enable-decoder=vp9
|
||||
--enable-encoder=h263
|
||||
--enable-encoder=h263p
|
||||
--enable-decoder=h263
|
||||
--enable-encoder=mjpeg
|
||||
--enable-decoder=mjpeg
|
||||
--enable-decoder=mjpegb
|
||||
--enable-libspeex
|
||||
--enable-libopus
|
||||
--enable-libvpx
|
||||
--enable-libx264
|
||||
--enable-encoder=libspeex
|
||||
--enable-decoder=libspeex
|
||||
--enable-encoder=libopus
|
||||
--enable-decoder=libopus
|
||||
--enable-decoder=flac
|
||||
--enable-decoder=vorbis
|
||||
--enable-decoder=aac
|
||||
--enable-decoder=ac3
|
||||
--enable-decoder=eac3
|
||||
--enable-decoder=mp3
|
||||
--enable-decoder=pcm_u24be
|
||||
--enable-decoder=pcm_u24le
|
||||
--enable-decoder=pcm_u32be
|
||||
--enable-decoder=pcm_u32le
|
||||
--enable-decoder=pcm_u8
|
||||
--enable-decoder=pcm_f16le
|
||||
--enable-decoder=pcm_f24le
|
||||
--enable-decoder=pcm_f32be
|
||||
--enable-decoder=pcm_f32le
|
||||
--enable-decoder=pcm_f64be
|
||||
--enable-decoder=pcm_f64le
|
||||
--enable-decoder=pcm_s16be
|
||||
--enable-decoder=pcm_s16be_planar
|
||||
--enable-decoder=pcm_s16le
|
||||
--enable-decoder=pcm_s16le_planar
|
||||
--enable-decoder=pcm_s24be
|
||||
--enable-decoder=pcm_s24le
|
||||
--enable-decoder=pcm_s24le_planar
|
||||
--enable-decoder=pcm_s32be
|
||||
--enable-decoder=pcm_s32le
|
||||
--enable-decoder=pcm_s32le_planar
|
||||
--enable-decoder=pcm_s64be
|
||||
--enable-decoder=pcm_s64le
|
||||
--enable-decoder=pcm_s8
|
||||
--enable-decoder=pcm_s8_planar
|
||||
--enable-decoder=pcm_u16be
|
||||
--enable-decoder=pcm_u16le
|
||||
--enable-encoder=gif
|
||||
--enable-decoder=gif
|
||||
--enable-encoder=jpegls
|
||||
--enable-decoder=jpegls
|
||||
--enable-encoder=ljpeg
|
||||
--enable-decoder=jpeg2000
|
||||
--enable-encoder=png
|
||||
--enable-decoder=png
|
||||
--enable-encoder=bmp
|
||||
--enable-decoder=bmp
|
||||
--enable-encoder=tiff
|
||||
--enable-decoder=tiff
|
||||
--enable-filter=scale
|
||||
--enable-filter=overlay
|
||||
--enable-filter=amix
|
||||
--enable-filter=amerge
|
||||
--enable-filter=aresample
|
||||
--enable-filter=format
|
||||
--enable-filter=aformat
|
||||
--enable-filter=fps
|
||||
--enable-filter=transpose
|
||||
--enable-filter=pad
|
@ -0,0 +1,18 @@
|
||||
--enable-pic
|
||||
--target-os=linux
|
||||
--enable-indev=v4l2
|
||||
--enable-indev=xcbgrab
|
||||
--enable-vdpau
|
||||
--enable-hwaccel=h264_vdpau
|
||||
--enable-hwaccel=mpeg4_vdpau
|
||||
--enable-vaapi
|
||||
--enable-hwaccel=h264_vaapi
|
||||
--enable-hwaccel=mpeg4_vaapi
|
||||
--enable-hwaccel=h263_vaapi
|
||||
--enable-hwaccel=vp8_vaapi
|
||||
--enable-hwaccel=mjpeg_vaapi
|
||||
--enable-hwaccel=hevc_vaapi
|
||||
--enable-encoder=h264_vaapi
|
||||
--enable-encoder=vp8_vaapi
|
||||
--enable-encoder=mjpeg_vaapi
|
||||
--enable-encoder=hevc_vaapi
|
@ -0,0 +1,10 @@
|
||||
--enable-cuvid
|
||||
--enable-ffnvcodec
|
||||
--enable-nvdec
|
||||
--enable-nvenc
|
||||
--enable-hwaccel=h264_nvdec
|
||||
--enable-hwaccel=hevc_nvdec
|
||||
--enable-hwaccel=vp8_nvdec
|
||||
--enable-hwaccel=mjpeg_nvdec
|
||||
--enable-encoder=h264_nvenc
|
||||
--enable-encoder=hevc_nvenc
|
@ -0,0 +1,5 @@
|
||||
remove-mjpeg-log.patch
|
||||
change-RTCP-ratio.patch
|
||||
rtp_ext_abs_send_time.patch
|
||||
libopusdec-enable-FEC.patch
|
||||
libopusenc-enable-FEC.patch
|
@ -0,0 +1,20 @@
|
||||
0001-rfc6544.patch
|
||||
0002-rfc2466.patch
|
||||
0003-add-tcp-keep-alive.patch
|
||||
0004-multiple_listeners.patch
|
||||
0005-fix_ebusy_turn.patch
|
||||
0006-ignore_ipv6_on_transport_check.patch
|
||||
0007-upnp-srflx-nat-assisted-cand.patch
|
||||
0008-fix_ioqueue_ipv6_sendto.patch
|
||||
0009-add-config-site.patch
|
||||
0010-fix-tcp-death-detection.patch
|
||||
0011-fix-turn-shutdown-crash.patch
|
||||
0012-ignore-down-interfaces.patch
|
||||
0013-ignore-addresses-for-RFC7335.patch
|
||||
0014-fix-socket-leak.patch
|
||||
0015-fix-socktype-and-duplicate-checking.patch
|
||||
0016-use-larger-Ta-interval.patch
|
||||
0017-auto-register-thread.patch
|
||||
0018-fix-ioqueue-lock-acquire.patch
|
||||
0019-resort-check-list-after-adding-prflx.patch
|
||||
0020-avoid-immediate-nominating-triggered-check.patch
|
123
pkgs/applications/networking/instant-messengers/jami/daemon.nix
Normal file
123
pkgs/applications/networking/instant-messengers/jami/daemon.nix
Normal file
@ -0,0 +1,123 @@
|
||||
{ src
|
||||
, version
|
||||
, jami-meta
|
||||
, stdenv
|
||||
, lib
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, perl # for pod2man
|
||||
, ffmpeg
|
||||
, pjsip
|
||||
, alsa-lib
|
||||
, asio
|
||||
, dbus
|
||||
, dbus_cplusplus
|
||||
, fmt
|
||||
, gmp
|
||||
, libarchive
|
||||
, libgit2
|
||||
, libnatpmp
|
||||
, secp256k1
|
||||
, openssl
|
||||
, opendht
|
||||
, speex
|
||||
, webrtc-audio-processing
|
||||
, jsoncpp
|
||||
, gnutls
|
||||
, zlib
|
||||
, libyamlcpp
|
||||
, libpulseaudio
|
||||
, jack
|
||||
, udev
|
||||
, libupnp
|
||||
, msgpack
|
||||
, restinio
|
||||
, http-parser
|
||||
}:
|
||||
|
||||
let
|
||||
readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file));
|
||||
|
||||
ffmpeg-jami = ffmpeg.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" ];
|
||||
});
|
||||
|
||||
pjsip-jami = pjsip.overrideAttrs (old:
|
||||
let
|
||||
patch-src = src + "/daemon/contrib/src/pjproject/";
|
||||
in
|
||||
{
|
||||
patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
|
||||
});
|
||||
|
||||
opendht-jami = opendht.override {
|
||||
enableProxyServerAndClient = true;
|
||||
enablePushNotifications = true;
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "jami-daemon";
|
||||
inherit src version;
|
||||
sourceRoot = "source/daemon";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
perl
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
asio
|
||||
dbus
|
||||
dbus_cplusplus
|
||||
fmt
|
||||
ffmpeg-jami
|
||||
gmp
|
||||
gnutls
|
||||
libarchive
|
||||
libgit2
|
||||
libnatpmp
|
||||
opendht-jami
|
||||
pjsip-jami
|
||||
secp256k1
|
||||
openssl
|
||||
speex
|
||||
webrtc-audio-processing
|
||||
zlib
|
||||
libyamlcpp
|
||||
jsoncpp
|
||||
libpulseaudio
|
||||
jack
|
||||
opendht
|
||||
libupnp
|
||||
udev
|
||||
msgpack
|
||||
restinio
|
||||
http-parser
|
||||
];
|
||||
|
||||
doCheck = false; # The tests fail to compile due to missing headers.
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = ./update.sh;
|
||||
ffmpeg = ffmpeg-jami;
|
||||
pjsip = pjsip-jami;
|
||||
opendht = opendht-jami;
|
||||
};
|
||||
|
||||
meta = jami-meta // {
|
||||
description = "The daemon" + jami-meta.description;
|
||||
};
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, callPackage
|
||||
, fetchzip
|
||||
, jack
|
||||
, udev
|
||||
, libsForQt5
|
||||
}:
|
||||
|
||||
rec {
|
||||
version = "20211005.2.251ac7d";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
|
||||
sha256 = "12ppbwhnk5zajb73szd04sz80bp17q577bkb9j8p45apvq201db3";
|
||||
|
||||
stripRoot = false;
|
||||
extraPostFetch = ''
|
||||
cd $out
|
||||
mv ring-project/* ./
|
||||
rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp
|
||||
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 ];
|
||||
};
|
||||
|
||||
jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; };
|
||||
|
||||
jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; };
|
||||
|
||||
jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; };
|
||||
|
||||
jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; };
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
diff --git i/CMakeLists.txt w/CMakeLists.txt
|
||||
index 0ee77dba..767e19df 100644
|
||||
--- i/CMakeLists.txt
|
||||
+++ w/CMakeLists.txt
|
||||
@@ -635,7 +635,7 @@ if(ENABLE_SHARED)
|
||||
)
|
||||
endif()
|
||||
|
||||
-SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
|
||||
+SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
||||
|
||||
INSTALL( FILES ${libringclient_LIB_HDRS} ${libringclient_extra_LIB_HDRS}
|
||||
DESTINATION ${INCLUDE_INSTALL_DIR}/libringclient
|
@ -0,0 +1,48 @@
|
||||
{ version
|
||||
, src
|
||||
, jami-meta
|
||||
, stdenv
|
||||
, lib
|
||||
, pkg-config
|
||||
, cmake
|
||||
, qtbase
|
||||
, jami-daemon
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "jami-libclient";
|
||||
inherit version src;
|
||||
|
||||
sourceRoot = "source/lrc";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
jami-daemon
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Fix path to include dir when using split outputs
|
||||
./libclient-include-path.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
qtbase
|
||||
];
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DRING_BUILD_DIR=${jami-daemon}/include"
|
||||
"-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces"
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
meta = jami-meta // {
|
||||
description = "The client library" + jami-meta.description;
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
42
pkgs/applications/networking/instant-messengers/jami/update.sh
Executable file
42
pkgs/applications/networking/instant-messengers/jami/update.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p coreutils curl gnused common-updater-scripts
|
||||
|
||||
set -e
|
||||
|
||||
jami_dir="$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
# Update src version and hash
|
||||
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)
|
||||
update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix
|
||||
|
||||
src=$(nix-build --no-out-link -A jami-libclient.src)
|
||||
|
||||
config_dir="$jami_dir/config"
|
||||
mkdir -p $config_dir
|
||||
|
||||
ffmpeg_rules="${src}/daemon/contrib/src/ffmpeg/rules.mak"
|
||||
|
||||
# Update FFmpeg patches
|
||||
ffmpeg_patches=$(sed -n '/.sum-ffmpeg:/,/HAVE_IOS/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p')
|
||||
echo -e "Patches for FFmpeg:\n${ffmpeg_patches}\n"
|
||||
echo "${ffmpeg_patches}" > "$config_dir/ffmpeg_patches"
|
||||
|
||||
# Update FFmpeg args
|
||||
ffmpeg_args_common=$(sed -n '/#disable everything/,/#platform specific options/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
|
||||
echo -e "Common args for FFmpeg:\n${ffmpeg_args_common}\n"
|
||||
echo "${ffmpeg_args_common}" > "$config_dir/ffmpeg_args_common"
|
||||
|
||||
ffmpeg_args_linux1=$(sed -n '/ifdef HAVE_LINUX/,/ifdef HAVE_ANDROID/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
|
||||
ffmpeg_args_linux2=$(sed -n '/# Desktop Linux/,/i386 x86_64/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
|
||||
echo -e "Linux args for FFmpeg:\n${ffmpeg_args_linux1}\n${ffmpeg_args_linux2}\n"
|
||||
echo "${ffmpeg_args_linux1}" > "$config_dir/ffmpeg_args_linux"
|
||||
echo "${ffmpeg_args_linux2}" >> "$config_dir/ffmpeg_args_linux"
|
||||
|
||||
ffmpeg_args_x86=$(sed -n '/i386 x86_64/,/# End Desktop Linux:/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
|
||||
echo -e "x86 args for FFmpeg:\n${ffmpeg_args_x86}\n"
|
||||
echo "${ffmpeg_args_x86}" > "$config_dir/ffmpeg_args_x86"
|
||||
|
||||
# Update pjsip patches
|
||||
pjsip_patches=$(sed -n '/UNPACK/,/HAVE_ANDROID/p' ${src}/daemon/contrib/src/pjproject/rules.mak | sed -n -E 's/.*pjproject\/(00.*patch).*/\1/p')
|
||||
echo -e "Patches for pjsip:\n${pjsip_patches}\n"
|
||||
echo "${pjsip_patches}" > "$config_dir/pjsip_patches"
|
@ -1,150 +0,0 @@
|
||||
{ lib, stdenv
|
||||
, fetchgit
|
||||
, which
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, automake
|
||||
, libtool
|
||||
, pjsip
|
||||
, libyamlcpp
|
||||
, alsa-lib
|
||||
, libpulseaudio
|
||||
, libsamplerate
|
||||
, libsndfile
|
||||
, dbus
|
||||
, dbus_cplusplus
|
||||
, ffmpeg_3
|
||||
, udev
|
||||
, pcre
|
||||
, gsm
|
||||
, speex
|
||||
, boost
|
||||
, opendht
|
||||
, msgpack
|
||||
, gnutls
|
||||
, zlib
|
||||
, jsoncpp
|
||||
, xorg
|
||||
, libargon2
|
||||
, cryptopp
|
||||
, openssl
|
||||
, perl
|
||||
, python3
|
||||
, libupnp
|
||||
, speexdsp
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, asio
|
||||
}:
|
||||
|
||||
let
|
||||
myPython = python3.withPackages (ps: with ps; [
|
||||
pygobject3
|
||||
dbus-python
|
||||
]);
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://gitlab.savoirfairelinux.com/ring/ring-daemon.git";
|
||||
rev = "006b8dc7be08fe9beb68709af71004e7bc1ceb5c";
|
||||
sha256 = "0ih9g0rismrhx6nqcy3jqfbcs166grg0shnfmrnmykl9h0xy8z47";
|
||||
};
|
||||
|
||||
patchdir = "${src}/contrib/src";
|
||||
|
||||
restbed = import ./restbed.nix {
|
||||
inherit stdenv lib fetchFromGitHub cmake asio openssl;
|
||||
patches = [
|
||||
"${patchdir}/restbed/CMakeLists.patch"
|
||||
"${patchdir}/restbed/strand.patch"
|
||||
"${patchdir}/restbed/uri_cpp.patch"
|
||||
"${patchdir}/restbed/dns-resolution-error.patch"
|
||||
"${patchdir}/restbed/string.patch"
|
||||
];
|
||||
};
|
||||
|
||||
pjsip' = lib.overrideDerivation pjsip (old: {
|
||||
patches = [
|
||||
"${patchdir}/pjproject/gnutls.patch"
|
||||
./notestsapps.patch # this one had to be modified
|
||||
"${patchdir}/pjproject/fix_base64.patch"
|
||||
"${patchdir}/pjproject/ipv6.patch"
|
||||
"${patchdir}/pjproject/ice_config.patch"
|
||||
"${patchdir}/pjproject/multiple_listeners.patch"
|
||||
"${patchdir}/pjproject/pj_ice_sess.patch"
|
||||
"${patchdir}/pjproject/fix_turn_fallback.patch"
|
||||
"${patchdir}/pjproject/fix_ioqueue_ipv6_sendto.patch"
|
||||
"${patchdir}/pjproject/add_dtls_transport.patch"
|
||||
];
|
||||
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";
|
||||
});
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "ring-daemon";
|
||||
version = "2017-07-11";
|
||||
|
||||
inherit src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
which
|
||||
autoreconfHook
|
||||
automake
|
||||
libtool
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pjsip'
|
||||
libyamlcpp
|
||||
alsa-lib
|
||||
libpulseaudio
|
||||
libsamplerate
|
||||
libsndfile
|
||||
dbus
|
||||
dbus_cplusplus
|
||||
ffmpeg_3
|
||||
udev
|
||||
pcre
|
||||
gsm
|
||||
speex
|
||||
boost
|
||||
opendht
|
||||
msgpack
|
||||
gnutls
|
||||
zlib
|
||||
jsoncpp
|
||||
restbed
|
||||
xorg.libX11
|
||||
libargon2
|
||||
cryptopp
|
||||
openssl
|
||||
perl
|
||||
libupnp
|
||||
speexdsp
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir $out/bin
|
||||
ln -s $out/lib/ring/dring $out/bin/dring
|
||||
cp -R ./tools/dringctrl/ $out/
|
||||
substitute ./tools/dringctrl/dringctrl.py $out/dringctrl/dringctrl.py \
|
||||
--replace '#!/usr/bin/env python3' "#!${myPython}/bin/python3"
|
||||
chmod +x $out/dringctrl/dringctrl.py
|
||||
ln -s $out/dringctrl/dringctrl.py $out/bin/dringctrl.py
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Voice-over-IP software phone";
|
||||
longDescription = ''
|
||||
As the SIP/audio daemon and the user interface are separate processes, it
|
||||
is easy to provide different user interfaces. GNU Ring comes with various
|
||||
graphical user interfaces and even scripts to control the daemon from the
|
||||
shell.
|
||||
'';
|
||||
homepage = "https://ring.cx";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ taeer olynch ];
|
||||
platforms = platforms.linux;
|
||||
# pjsip' fails to compile with the supplied patch set, see: https://hydra.nixos.org/build/68667921/nixlog/4
|
||||
broken = true;
|
||||
};
|
||||
}
|
@ -1,106 +0,0 @@
|
||||
/* diff --git a/Makefile b/Makefile */
|
||||
/* index 33a4e6b..a486eb7 100644 */
|
||||
/* --- a/Makefile */
|
||||
/* +++ b/Makefile */
|
||||
/* @@ -4,7 +4,7 @@ include build/host-$(HOST_NAME).mak */
|
||||
/* include version.mak */
|
||||
|
||||
/* LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build */
|
||||
/* -DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS) */
|
||||
/* +DIRS = $(LIB_DIRS) $(EXTRA_DIRS) */
|
||||
|
||||
/* ifdef MINSIZE */
|
||||
/* MAKE_FLAGS := MINSIZE=1 */
|
||||
diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile
|
||||
index cb601cb..862a78a 100644
|
||||
--- a/pjlib-util/build/Makefile
|
||||
+++ b/pjlib-util/build/Makefile
|
||||
@@ -54,7 +54,6 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \
|
||||
export UTIL_TEST_CFLAGS += $(_CFLAGS)
|
||||
export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS)
|
||||
export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
|
||||
-export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
|
||||
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
|
||||
diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile
|
||||
index 1e64950..a75fa65 100644
|
||||
--- a/pjlib/build/Makefile
|
||||
+++ b/pjlib/build/Makefile
|
||||
@@ -56,7 +56,6 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
|
||||
export TEST_CFLAGS += $(_CFLAGS)
|
||||
export TEST_CXXFLAGS += $(_CXXFLAGS)
|
||||
export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS)
|
||||
-export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
|
||||
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
|
||||
diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile
|
||||
index 8012cb7..2ca283a 100644
|
||||
--- a/pjmedia/build/Makefile
|
||||
+++ b/pjmedia/build/Makefile
|
||||
@@ -165,7 +165,6 @@ export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \
|
||||
$(PJLIB_UTIL_LDLIB) \
|
||||
$(PJNATH_LDLIB) \
|
||||
$(_LDFLAGS)
|
||||
-export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
|
||||
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
|
||||
diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile
|
||||
index 1bc08b5..109f79b 100644
|
||||
--- a/pjnath/build/Makefile
|
||||
+++ b/pjnath/build/Makefile
|
||||
@@ -54,7 +54,6 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o
|
||||
export PJNATH_TEST_CFLAGS += $(_CFLAGS)
|
||||
export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS)
|
||||
export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
|
||||
-export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
|
||||
###############################################################################
|
||||
@@ -65,7 +64,6 @@ export PJTURN_CLIENT_OBJS += client_main.o
|
||||
export PJTURN_CLIENT_CFLAGS += $(_CFLAGS)
|
||||
export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS)
|
||||
export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
|
||||
-export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
###############################################################################
|
||||
# Defines for building TURN server application
|
||||
@@ -76,7 +74,6 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \
|
||||
export PJTURN_SRV_CFLAGS += $(_CFLAGS)
|
||||
export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS)
|
||||
export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
|
||||
-export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
|
||||
|
||||
diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
|
||||
index d2a5c2a..7e2ec60 100644
|
||||
--- a/pjsip/build/Makefile
|
||||
+++ b/pjsip/build/Makefile
|
||||
@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
|
||||
account.o endpoint.o json.o persistent.o types.o \
|
||||
siptypes.o call.o presence.o media.o
|
||||
export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
|
||||
-export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
|
||||
+export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
|
||||
export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \
|
||||
$(PJSIP_UA_LDLIB) \
|
||||
$(PJSIP_SIMPLE_LDLIB) \
|
||||
@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
|
||||
export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
|
||||
export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
|
||||
export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS)
|
||||
-export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
|
||||
|
||||
@@ -195,7 +194,6 @@ export TEST_LDFLAGS += $(PJSIP_LDLIB) \
|
||||
$(PJLIB_UTIL_LDLIB) \
|
||||
$(PJNATH_LDLIB) \
|
||||
$(_LDFLAGS)
|
||||
-export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
|
||||
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
|
@ -1,38 +0,0 @@
|
||||
{ lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, asio
|
||||
, openssl
|
||||
, patches
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "restbed";
|
||||
version = "2016-09-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Corvusoft";
|
||||
repo = "restbed";
|
||||
rev = "34187502642144ab9f749ab40f5cdbd8cb17a54a";
|
||||
sha256 = "1jb38331fcicyiisqdprhq6zwfc6g518fm3l4qw9aiv5k9nqim22";
|
||||
};
|
||||
|
||||
inherit patches;
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ asio openssl ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "HTTP framework for building networked applications";
|
||||
longDescription = ''
|
||||
HTTP framework for building networked applications that require seamless
|
||||
and secure communication, with the flexability to model a range of
|
||||
business processes. Targeting mobile, tablet, desktop, and embedded
|
||||
production environments.
|
||||
'';
|
||||
homepage = "https://corvusoft.co.uk/";
|
||||
license = licenses.agpl3;
|
||||
maintainers = with maintainers; [ taeer ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -3532,8 +3532,6 @@ with pkgs;
|
||||
|
||||
replay-sorcery = callPackage ../tools/video/replay-sorcery { };
|
||||
|
||||
ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
|
||||
|
||||
ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) AppKit Security;
|
||||
};
|
||||
@ -33409,6 +33407,13 @@ with pkgs;
|
||||
|
||||
btcdeb = callPackage ../applications/blockchains/btcdeb { };
|
||||
|
||||
inherit (callPackage ../applications/networking/instant-messengers/jami {
|
||||
# TODO: remove once `udev` is `systemdMinimal` everywhere.
|
||||
udev = systemdMinimal;
|
||||
jack = libjack2;
|
||||
})
|
||||
jami-daemon jami-libclient jami-client-gnome jami-client-qt;
|
||||
|
||||
jitsi-meet-electron = callPackage ../applications/networking/instant-messengers/jitsi-meet-electron {
|
||||
electron = electron_13;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user