New port: net-im/ring-daemon

Ring is a secure and distributed voice, video and chat communication
platform that requires no centralized server and leaves the power
of privacy in the hands of the user.

WWW: https://ring.cx/

PR:		209542
Submitted by:	Yuri Victorovich <yuri@rawbw.com>
This commit is contained in:
Kurt Jaeger 2016-05-29 03:50:56 +00:00
parent 52786c7250
commit 98c787c4cd
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=416084
21 changed files with 555 additions and 0 deletions

View file

@ -149,6 +149,7 @@
SUBDIR += qxmpp SUBDIR += qxmpp
SUBDIR += ramblercontacts SUBDIR += ramblercontacts
SUBDIR += ricochet SUBDIR += ricochet
SUBDIR += ring-daemon
SUBDIR += rubygem-earthquake SUBDIR += rubygem-earthquake
SUBDIR += rubygem-hipchat SUBDIR += rubygem-hipchat
SUBDIR += rubygem-lita SUBDIR += rubygem-lita

View file

@ -0,0 +1,78 @@
# Created by: Yuri Victorovich <yuri@rawbw.com>
# $FreeBSD$
PORTNAME= ring-daemon
PORTVERSION= 0.160516
DISTVERSIONPREFIX= v
CATEGORIES= net-im net-p2p
MAINTAINER= yuri@rawbw.com
COMMENT= Daemon part of the Ring VoIP SIP phone and IM
LICENSE= GPLv3
BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
LIB_DEPENDS= libyaml-cpp.so:devel/yaml-cpp \
libjsoncpp.so:devel/jsoncpp \
libpcre.so:devel/pcre \
libupnp.so:devel/upnp \
libopendht.so:devel/opendht \
libgnutls.so:security/gnutls \
libavcodec.so:multimedia/ffmpeg \
libpulse.so:audio/pulseaudio \
libsndfile.so:audio/libsndfile \
libsamplerate.so:audio/libsamplerate \
libspeex.so:audio/speex \
libspeexdsp.so:audio/speexdsp \
libuuid.so:misc/e2fsprogs-libuuid
BROKEN_FreeBSD_9= Fails due to compiler issues
USE_GITHUB= yes
GH_TUPLE+= savoirfairelinux:ring-daemon:56ec56f
GH_TUPLE+= pjsip:pjproject:2.4.5:pj
CONFIGURE_ARGS= --without-gsm \
--enable-video \
--enable-ipv6
USES= autoreconf compiler:c++14-lang gmake libtool pkgconfig
USE_GNOME= glib20 gtk20 cairo gdkpixbuf2
USE_XORG= x11 xscrnsaver
USE_GL= gl
USE_QT5= core gui network xml opengl sql sql-sqlite3_run widgets svg \
concurrent buildtools_build linguisttools_build
GNU_CONFIGURE= yes
MYFLAGS= -I${WRKSRC}/contrib/native/pjproject/pjlib/include -I${LOCALBASE}/include -DPJ_LINUX -I${LOCALBASE}/include/jsoncpp
CFLAGS+= ${MYFLAGS}
CPPFLAGS+= ${MYFLAGS}
CXXFLAGS+= ${MYFLAGS}
USE_LDCONFIG= yes
OPTIONS_DEFINE= DBUS
OPTIONS_DEFAULT=DBUS
DBUS_CONFIGURE_OFF= --without-dbus
DBUS_CONFIGURE_ON= --with-dbus
DBUS_LIB_DEPENDS= \
libdbus-1.so:devel/dbus \
libdbus-c++-1.so:devel/dbus-c++
OPTIONS_SUB= yes
post-extract:
@${MKDIR} ${WRKSRC}/contrib/native
@${MV} ${WRKDIR}/pjproject-2.4.5 ${WRKSRC}/contrib/native/
post-patch:
@${REINPLACE_CMD} -e 's|PJPROJECT_OPTIONS)|PJPROJECT_OPTIONS) CPPFLAGS=-I${LOCALBASE}/include/ CFLAGS="-I${LOCALBASE}/include/ -fPIC"|g' \
${WRKSRC}/contrib/src/pjproject/rules.mak
@${REINPLACE_CMD} -e 's|ringtonePath_ = "/usr/share|ringtonePath_ = "${LOCALBASE}/share|g' \
${WRKSRC}/src/account.cpp
pre-configure:
@(cd ${WRKSRC} && \
${ECHO} "===> Building the custom version of pjsip" && \
cd contrib/native && \
../bootstrap && \
${GMAKE} .pjproject)
post-stage:
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libring.so
.include <bsd.port.mk>

View file

@ -0,0 +1,5 @@
TIMESTAMP = 1463424490
SHA256 (savoirfairelinux-ring-daemon-v0.160516-56ec56f_GH0.tar.gz) = 46ef728350b2a8ad1328c2ad805702f26d7bd5af54b7195d364d7f012c33d540
SIZE (savoirfairelinux-ring-daemon-v0.160516-56ec56f_GH0.tar.gz) = 2626013
SHA256 (pjsip-pjproject-2.4.5_GH0.tar.gz) = 3678608de92cb0ed1248464fbeb20af9ddc05c1ad55aea3d40ff8e4ec784c91f
SIZE (pjsip-pjproject-2.4.5_GH0.tar.gz) = 7627091

View file

@ -0,0 +1,59 @@
--- configure.ac.orig 2016-05-10 20:45:50 UTC
+++ configure.ac
@@ -48,6 +48,13 @@ case "${host_os}" in
# Needed for plugin system
LDFLAGS+=" -ldl"
;;
+ freebsd*)
+ SYS=freebsd
+ # Necessary for linking .a to a .so
+ LDFLAGS+=" -Wl,-Bsymbolic"
+ # Needed for plugin system
+ LDFLAGS+=" -ldl"
+ ;;
darwin*)
SYS=darwin
@@ -95,6 +102,7 @@ case "${host_os}" in
esac
AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
+AM_CONDITIONAL(HAVE_FREEBSD, test "${SYS}" = "freebsd")
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
AM_CONDITIONAL(HAVE_OSX, test "${HAVE_OSX}" = "1")
@@ -189,10 +197,10 @@ AC_ARG_WITH(contrib,
])
AC_MSG_CHECKING([for 3rd party libraries path])
AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
- CONTRIB_DIR="${srcdir}/contrib/${host}"
+ CONTRIB_DIR="${srcdir}/contrib/`uname -m`-portbld-freebsd"
AS_IF([test ! -d "${CONTRIB_DIR}"], [
echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
- CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
+ CONTRIB_DIR="${srcdir}/contrib/`uname -m`-portbld-freebsd"
AS_IF([test ! -d "${CONTRIB_DIR}"], [
echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
CONTRIB_DIR=""
@@ -295,7 +303,7 @@ fi
AM_CONDITIONAL(BUILD_ALSA, test "x$with_alsa" = "xyes")
-if test "${SYS}" = "linux"; then
+if test "${SYS}" = "linux" || test "${SYS}" = "freebsd"; then
dnl Check for pulseaudio development package - name: libpulse-dev
LIBPULSE_MIN_VERSION=0.9.15
AC_ARG_WITH([pulse],
@@ -377,9 +385,9 @@ AS_IF([test "x$with_dbus" = "xyes"], [
AC_MSG_ERROR([dbusxx-xml2cpp not found])
fi
- AS_IF([test "x$CLANG" = "xyes"], [
- AC_MSG_ERROR([dbus does not compile when clang is used, rerun with --without-dbus])
- ]);
+ #AS_IF([test "x$CLANG" = "xyes"], [
+ # AC_MSG_ERROR([dbus does not compile when clang is used, rerun with --without-dbus])
+ #]);
AM_CONDITIONAL(RING_DBUS, true)],
AM_CONDITIONAL(RING_DBUS, false));

View file

@ -0,0 +1,21 @@
--- contrib/bootstrap.orig 2016-05-10 20:45:50 UTC
+++ contrib/bootstrap
@@ -74,7 +74,7 @@ done
if test -z "$BUILD"
then
echo -n "Guessing build system... "
- BUILD="`${CC:-cc} -dumpmachine`"
+ BUILD="`uname -m`-portbld-freebsd"
if test -z "$BUILD"; then
echo "FAIL!"
exit 1
@@ -212,6 +212,9 @@ case "${OS}" in
add_make_enabled "HAVE_IOS" "HAVE_DARWIN_OS" "HAVE_BSD" "HAVE_NEON" "HAVE_ARMV7A"
fi
;;
+ *freebsd*)
+ add_make_enabled "HAVE_FREEBSD"
+ ;;
*bsd*)
add_make_enabled "HAVE_BSD"
;;

View file

@ -0,0 +1,11 @@
--- contrib/native/pjproject-2.4.5/aconfigure.orig 2015-08-12 04:46:22 UTC
+++ contrib/native/pjproject-2.4.5/aconfigure
@@ -7158,7 +7158,7 @@ $as_echo "Using OpenH264 prefix... $with
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenH264 usability" >&5
$as_echo_n "checking OpenH264 usability... " >&6; }
- OPENH264_LIBS="-lopenh264 -lstdc++"
+ OPENH264_LIBS="-lopenh264"
SAVED_LIBS="$LIBS"
SAVED_LDFLAGS="$LDFLAGS"

View file

@ -0,0 +1,11 @@
--- contrib/native/pjproject-2.4.5/aconfigure.ac.orig 2015-08-12 04:46:22 UTC
+++ contrib/native/pjproject-2.4.5/aconfigure.ac
@@ -1151,7 +1151,7 @@ AC_ARG_ENABLE(openh264,
AC_MSG_CHECKING([OpenH264 usability])
- OPENH264_LIBS="-lopenh264 -lstdc++"
+ OPENH264_LIBS="-lopenh264"
SAVED_LIBS="$LIBS"
SAVED_LDFLAGS="$LDFLAGS"

View file

@ -0,0 +1,10 @@
--- contrib/native/pjproject-2.4.5/build.mak.in.orig 2015-08-12 04:46:22 UTC
+++ contrib/native/pjproject-2.4.5/build.mak.in
@@ -265,7 +265,6 @@ export APP_LDLIBS := $(PJSUA_LIB_LDLIB)
$(PJLIB_LDLIB) \
@LIBS@
export APP_LDXXLIBS := $(PJSUA2_LIB_LDLIB) \
- -lstdc++ \
$(APP_LDLIBS)
# Here are the variabels to use if application is using the library

View file

@ -0,0 +1,12 @@
--- contrib/native/pjproject-2.4.5/pjsip/build/Makefile.orig 2015-08-12 04:46:22 UTC
+++ contrib/native/pjproject-2.4.5/pjsip/build/Makefile
@@ -152,8 +152,7 @@ export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB
$(PJNATH_LDLIB) \
$(PJLIB_UTIL_LDLIB) \
$(PJLIB_LDLIB) \
- $(_LDFLAGS) \
- -lstdc++
+ $(_LDFLAGS)
###############################################################################

View file

@ -0,0 +1,91 @@
--- contrib/src/main.mak.orig 2016-05-10 20:45:50 UTC
+++ contrib/src/main.mak
@@ -78,10 +78,10 @@ endif
#
ifndef HAVE_CROSS_COMPILE
ifneq ($(findstring $(origin CC),undefined default),)
-CC := gcc
+CC := cc
endif
ifneq ($(findstring $(origin CXX),undefined default),)
-CXX := g++
+CXX := c++
endif
ifneq ($(findstring $(origin LD),undefined default),)
LD := ld
@@ -97,10 +97,10 @@ STRIP := strip
endif
else
ifneq ($(findstring $(origin CC),undefined default),)
-CC := $(CROSS_COMPILE)gcc
+CC := $(CROSS_COMPILE)cc
endif
ifneq ($(findstring $(origin CXX),undefined default),)
-CXX := $(CROSS_COMPILE)g++
+CXX := $(CROSS_COMPILE)c++
endif
ifneq ($(findstring $(origin LD),undefined default),)
LD := $(CROSS_COMPILE)ld
@@ -117,8 +117,8 @@ endif
endif
ifdef HAVE_ANDROID
-CC := $(CROSS_COMPILE)gcc --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
-CXX := $(CROSS_COMPILE)g++ --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
+CC := $(CROSS_COMPILE)cc --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
+CXX := $(CROSS_COMPILE)c++ --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
endif
ifdef HAVE_MACOSX
@@ -256,15 +256,15 @@ else
ZCAT ?= $(error Gunzip client (zcat) not found!)
endif
-ifeq ($(shell sha512sum --version >/dev/null 2>&1 || echo FAIL),)
-SHA512SUM = sha512sum --check
-else ifeq ($(shell shasum --version >/dev/null 2>&1 || echo FAIL),)
-SHA512SUM = shasum -a 512 --check
-else ifeq ($(shell openssl version >/dev/null 2>&1 || echo FAIL),)
-SHA512SUM = openssl dgst -sha512
-else
-SHA512SUM = $(error SHA-512 checksumming not found!)
-endif
+#ifeq ($(shell sha512sum --version >/dev/null 2>&1 || echo FAIL),)
+#SHA512SUM = sha512sum --check
+#else ifeq ($(shell shasum --version >/dev/null 2>&1 || echo FAIL),)
+#SHA512SUM = shasum -a 512 --check
+#else ifeq ($(shell openssl version >/dev/null 2>&1 || echo FAIL),)
+#SHA512SUM = openssl dgst -sha512
+#else
+#SHA512SUM = $(error SHA-512 checksumming not found!)
+#endif
#
# Common helpers
@@ -320,7 +320,7 @@ checksum = \
"$(SRC)/$(patsubst .sum-%,%,$@)/$(2)SUMS" &&) \
(cd $(TARBALLS) && $(1) /dev/stdin) < \
"$(SRC)/$(patsubst .sum-%,%,$@)/$(2)SUMS"
-CHECK_SHA512 = $(call checksum,$(SHA512SUM),SHA512)
+#CHECK_SHA512 = $(call checksum,$(SHA512SUM),SHA512)
UNPACK = $(RM) -R $@ \
$(foreach f,$(filter %.tar.gz %.tgz,$^), && tar xvzf $(f)) \
$(foreach f,$(filter %.tar.bz2,$^), && tar xvjf $(f)) \
@@ -459,12 +459,12 @@ endif
echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> $@
# Default pattern rules
-.sum-%: $(SRC)/%/SHA512SUMS
- $(CHECK_SHA512)
- touch $@
+#.sum-%: $(SRC)/%/SHA512SUMS
+# $(CHECK_SHA512)
+# touch $@
-.sum-%:
- $(error Download and check target not defined for $*)
+#.sum-%:
+# $(error Download and check target not defined for $*)
# Dummy dependency on found packages
$(patsubst %,.dep-%,$(PKGS_FOUND)): .dep-%:

View file

@ -0,0 +1,33 @@
--- contrib/src/pjproject/rules.mak.orig 2016-05-10 20:45:50 UTC
+++ contrib/src/pjproject/rules.mak
@@ -42,17 +42,17 @@ endif
DEPS_pjproject += gnutls
ifndef HAVE_WIN32
ifndef HAVE_MACOSX
-DEPS_pjproject += uuid
+#DEPS_pjproject += uuid
endif
endif
$(TARBALLS)/pjproject-$(PJPROJECT_VERSION).tar.bz2:
- $(call download,$(PJPROJECT_URL))
+ #$(call download,$(PJPROJECT_URL))
-.sum-pjproject: pjproject-$(PJPROJECT_VERSION).tar.bz2
+#.sum-pjproject: pjproject-$(PJPROJECT_VERSION).tar.bz2
-pjproject: pjproject-$(PJPROJECT_VERSION).tar.bz2 .sum-pjproject
- $(UNPACK)
+pjproject: pjproject-$(PJPROJECT_VERSION).tar.bz2
+ #$(UNPACK)
ifdef HAVE_WIN32
$(APPLY) $(SRC)/pjproject/intptr_t.patch
$(APPLY) $(SRC)/pjproject/pj_win.patch
@@ -68,6 +68,6 @@ endif
$(MOVE)
.pjproject: pjproject
- cd $< && $(HOSTVARS) ./aconfigure $(HOSTCONF) $(PJPROJECT_OPTIONS)
+ cd $< && $(HOSTVARS) ./aconfigure $(HOSTCONF) $(PJPROJECT_OPTIONS) CPPFLAGS=-I/usr/local/include/ CFLAGS="-I/usr/local/include/ -fPIC" CPPFLAGS=-I/usr/local/include/ CFLAGS="-I/usr/local/include/ -fPIC"
cd $< && CFLAGS="$(PJPROJECT_EXTRA_CFLAGS)" $(MAKE) && $(MAKE) install
touch $@

View file

@ -0,0 +1,34 @@
--- contrib/src/uuid/rules.mak.orig 2016-05-10 20:45:50 UTC
+++ contrib/src/uuid/rules.mak
@@ -1,6 +1,6 @@
# libuuid part of util-linux
-UUID_VERSION := 1.0.2
+UUID_VERSION := 1.0.3
UUID_URL := $(SF)/libuuid/libuuid-$(UUID_VERSION).tar.gz
ifeq ($(call need_pkg,"uuid >= 2.0.0"),)
@@ -8,16 +8,16 @@ PKGS_FOUND += uuid
endif
$(TARBALLS)/libuuid-$(UUID_VERSION).tar.gz:
- $(call download,$(UUID_URL))
+ #$(call download,$(UUID_URL))
.sum-uuid: libuuid-$(UUID_VERSION).tar.gz
uuid: libuuid-$(UUID_VERSION).tar.gz .sum-uuid
- $(UNPACK)
- $(APPLY) $(SRC)/uuid/android.patch
- $(MOVE)
+ #$(UNPACK)
+ #$(APPLY) $(SRC)/uuid/android.patch
+ #$(MOVE)
.uuid: uuid
- cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
- cd $< && $(MAKE) install
- touch $@
+ #cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
+ #cd $< && $(MAKE) install
+ #touch $@

View file

@ -0,0 +1,11 @@
--- src/Makefile.am.orig 2016-05-10 20:45:50 UTC
+++ src/Makefile.am
@@ -4,7 +4,7 @@ RING_VIDEO_LIBS=
if RING_VIDEO
RING_VIDEO_LIBS+=./media/video/libvideo.la
-if HAVE_LINUX
+if HAVE_FREEBSD
if HAVE_ANDROID
RING_VIDEO_LIBS+= \
./media/video/androidvideo/libandroidvideo.la

View file

@ -0,0 +1,11 @@
--- src/dring/configurationmanager_interface.h.orig 2016-05-10 20:45:50 UTC
+++ src/dring/configurationmanager_interface.h
@@ -31,6 +31,8 @@
#include <string>
#include <cstdint>
+#include <time.h>
+
#include "dring.h"
#include "security_const.h"

View file

@ -0,0 +1,22 @@
--- src/archiver.cpp.orig 2016-05-10 20:45:50 UTC
+++ src/archiver.cpp
@@ -97,7 +97,8 @@ Archiver::exportAccounts(std::vector<std
}
// Encrypt using provided password
- auto encrypted = dht::crypto::aesEncrypt(compressed, password);
+ dht::Blob blob; for (auto c : password) blob.push_back(c);
+ auto encrypted = dht::crypto::aesEncrypt(compressed, blob);
// Write
try {
@@ -151,7 +152,8 @@ Archiver::importAccounts(std::string arc
// Decrypt
try {
- file = dht::crypto::aesDecrypt(file, password);
+ dht::Blob blob; for (auto c : password) blob.push_back(c);
+ file = dht::crypto::aesDecrypt(file, blob);
} catch (const std::exception& ex) {
RING_ERR("Decryption failed: %s", ex.what());
return EPERM;

View file

@ -0,0 +1,11 @@
--- src/media/video/Makefile.am.orig 2016-05-10 20:45:50 UTC
+++ src/media/video/Makefile.am
@@ -2,7 +2,7 @@ include $(top_srcdir)/globals.mak
SUBDIRS= test
-if HAVE_LINUX
+if HAVE_FREEBSD
if HAVE_ANDROID
SUBDIRS+= \
androidvideo

View file

@ -0,0 +1,11 @@
--- src/media/video/test/Makefile.am.orig 2016-05-10 20:45:50 UTC
+++ src/media/video/test/Makefile.am
@@ -9,7 +9,7 @@ test_video_rtp_LDADD=$(top_builddir)/src
test_video_input_SOURCES=test_video_input.cpp test_video_input.h
test_video_input_LDADD=$(top_builddir)/src/libring.la $(top_builddir)/src/media/video/libvideo.la $(YAML_LIBS)
-if HAVE_LINUX
+if HAVE_FREEBSD
test_shm_SOURCES=test_shm.cpp shm_src.cpp shm_src.h
test_shm_LDADD=$(top_builddir)/src/libring.la $(top_builddir)/src/media/video/libvideo.la $(YAML_LIBS) -lrt
test_shm_CXXFLAGS=$(AM_CXXFLAGS)

View file

@ -0,0 +1,11 @@
--- src/media/video/v4l2/video_device_impl.cpp.orig 2016-05-10 20:45:50 UTC
+++ src/media/video/v4l2/video_device_impl.cpp
@@ -285,7 +285,7 @@ VideoV4l2Size::getRate(FrameRate rate) c
{
double r = rate.real();
for (const auto& item : rates_) {
- if (std::fabs(item.frame_rate.real() - r) < 0.0001d)
+ if (std::fabs(item.frame_rate.real() - r) < 0.0001f)
return item;
}
return rates_.back();

View file

@ -0,0 +1,90 @@
--- src/media/video/v4l2/video_device_monitor_impl.cpp.orig 2016-05-10 20:45:50 UTC
+++ src/media/video/v4l2/video_device_monitor_impl.cpp
@@ -24,7 +24,10 @@
#include <cerrno>
#include <cstdio>
#include <cstring>
+#if !defined(__FreeBSD__)
#include <libudev.h>
+#define HAVE_UDEV
+#endif
#include <mutex>
#include <sstream>
#include <stdexcept> // for std::runtime_error
@@ -72,24 +75,31 @@ class VideoDeviceMonitorImpl {
std::thread thread_;
mutable std::mutex mutex_;
+#if defined(HAVE_UDEV)
udev *udev_;
udev_monitor *udev_mon_;
+#endif
bool probing_;
};
+#if defined(HAVE_UDEV)
static int is_v4l2(struct udev_device *dev)
{
const char *version = udev_device_get_property_value(dev, "ID_V4L_VERSION");
/* we do not support video4linux 1 */
return version and strcmp(version, "1");
}
+#endif
VideoDeviceMonitorImpl::VideoDeviceMonitorImpl(VideoDeviceMonitor* monitor) :
monitor_(monitor),
thread_(), mutex_(),
+#if defined(HAVE_UDEV)
udev_(0), udev_mon_(0),
+#endif
probing_(false)
{
+#if defined(HAVE_UDEV)
udev_list_entry *devlist;
udev_enumerate *devenum;
@@ -149,15 +159,16 @@ udev_failed:
udev_unref(udev_);
udev_mon_ = NULL;
udev_ = NULL;
+#endif
/* fallback : go through /dev/video* */
- for (int idx = 0;; ++idx) {
+ for (int idx = 0; idx<16; ++idx) {
std::stringstream ss;
ss << "/dev/video" << idx;
try {
monitor_->addDevice(ss.str());
} catch (const std::runtime_error &e) {
- RING_ERR("%s", e.what());
+ RING_ERR("%s (YURI exit from constructor)", e.what());
return;
}
}
@@ -174,14 +185,17 @@ VideoDeviceMonitorImpl::~VideoDeviceMoni
probing_ = false;
if (thread_.joinable())
thread_.join();
+#if defined(HAVE_UDEV)
if (udev_mon_)
udev_monitor_unref(udev_mon_);
if (udev_)
udev_unref(udev_);
+#endif
}
void VideoDeviceMonitorImpl::run()
{
+#if defined(HAVE_UDEV)
if (!udev_mon_) {
probing_ = false;
return;
@@ -236,6 +250,7 @@ void VideoDeviceMonitorImpl::run()
return;
}
}
+#endif
}
VideoDeviceMonitor::VideoDeviceMonitor() :

View file

@ -0,0 +1,5 @@
Ring is a secure and distributed voice, video and chat communication
platform that requires no centralized server and leaves the power
of privacy in the hands of the user.
WWW: https://ring.cx/

View file

@ -0,0 +1,17 @@
include/dring/account_const.h
include/dring/call_const.h
include/dring/callmanager_interface.h
include/dring/configurationmanager_interface.h
include/dring/dring.h
include/dring/media_const.h
include/dring/presencemanager_interface.h
include/dring/security_const.h
include/dring/videomanager_interface.h
lib/libring.so
lib/libring.so.0
lib/libring.so.0.0.0
man/man1/dring.1.gz
%%DBUS%%sbin/dring
%%DBUS%%share/dbus-1/services/cx.ring.Ring.service
share/ring/ringtones/default.wav
share/ring/ringtones/konga.ul