Package Details: ring-daemon-git 20161128-1

Git Clone URL: https://aur.archlinux.org/ring-daemon-git.git (read-only)
Package Base: ring-daemon-git
Description: ring.cx is free software for universal communication which respects freedoms and privacy of its users (formerly known as SFLphone)
Upstream URL: https://ring.cx
Keywords: audio chat opendht P2P ring video
Licenses: GPL3
Groups: ring
Conflicts: ring-daemon
Provides: ring-daemon
Submitter: zorun
Maintainer: zorun
Last Packager: zorun
Votes: 5
Popularity: 0.669364
First Submitted: 2016-02-21 20:43
Last Updated: 2016-12-01 22:28

Latest Comments

ArchangeGabriel commented on 2016-11-14 19:39

Indeed that’s it.

zorun commented on 2016-11-13 10:44

It's a crypto++ issue, most likely because you have custom CFLAGS. See the discussion in https://aur.archlinux.org/packages/ring-daemon/

ArchangeGabriel commented on 2016-11-13 00:09

@di72nn: Ring devs added a Name Service for user to link their RingID to an username. It’s based on Ethereum blockchain. The idea is that people can search you by username rather than having to know your RingID. They are obviously pros and cons to this system, but it’s optional (you may not publish any username).

ArchangeGabriel commented on 2016-11-12 23:59

Still failing after rebuilding opendht-git and installing restbed-latest with its dependencies.

../src/.libs/libring.so: undefined reference to `non-virtual thunk to CryptoPP::Rijndael::Dec::AdvancedProcessBlocks(unsigned char const*, unsigned char const*, unsigned char*, unsigned long, unsigned int) const'
../src/.libs/libring.so: undefined reference to `CryptoPP::Rijndael::Dec::AdvancedProcessBlocks(unsigned char const*, unsigned char const*, unsigned char*, unsigned long, unsigned int) const'
collect2: error: ld returned 1 exit status

Did you succeed building this package?

di72nn commented on 2016-11-11 22:47

The package can be built with '--disable-ringns', which disables "Ring Name Service", but I have no idea what this is. Otherwise a newer version of "restbed" is required.

zorun commented on 2016-11-04 21:22

Yes, this package is currently broken. I started converting it to a "build-all-deps-statically" model as suggested by sim590, but last time I tried, it failed to build.

In the meantime, I will see if I can add the missing dependencies (but there is no guarantee it will build fine).

BasT commented on 2016-11-04 13:15

error on build:

checking for dbusxx-xml2cpp... true
checking for exit in -lrestbed... no
configure: error: Missing restbed files
==> ERROR: A failure occurred in build().
Aborting...


EDIT:
I installed restbed and now I get:

CXX libringacc_la-namedirectory.lo
namedirectory.cpp: In function ‘size_t ring::getContentLength(restbed::Response&)’:
namedirectory.cpp:98:11: error: ‘class restbed::Response’ has no member named ‘get_header’; did you mean ‘get_headers’?
reply.get_header("Content-Length", length);
^~~~~~~~~~
namedirectory.cpp: In member function ‘void ring::NameDirectory::lookupAddress(const string&, ring::NameDirectory::LookupCallback)’:
namedirectory.cpp:112:10: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
req->set_header("Accept", "*/*");
^~~~~~~~~~
namedirectory.cpp:113:10: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
req->set_header("Host", serverHost_);
^~~~~~~~~~
namedirectory.cpp:117:25: error: ‘restbed::Http’ has not been declared
auto ret = restbed::Http::async(req, [this,cb,addr](const std::shared_ptr<restbed::Request>,
^~~~
namedirectory.cpp: In lambda function:
namedirectory.cpp:125:22: error: ‘restbed::Http’ has not been declared
restbed::Http::fetch(length, reply);
^~~~
namedirectory.cpp:127:33: error: no matching function for call to ‘restbed::Response::get_body(std::__cxx11::string&)’
reply->get_body(body);
^
In file included from /usr/include/restbed:13:0,
from namedirectory.cpp:27:
/usr/include/corvusoft/restbed/response.hpp:47:19: note: candidate: restbed::Bytes restbed::Response::get_body() const
Bytes get_body( void ) const;
^~~~~~~~
/usr/include/corvusoft/restbed/response.hpp:47:19: note: candidate expects 0 arguments, 1 provided
namedirectory.cpp: In lambda function:
namedirectory.cpp:152:41: error: ‘ret’ is not captured
ThreadPool::instance().run([ret](){ ret.get(); });
^~~
namedirectory.cpp:152:36: note: the lambda has no capture-default
ThreadPool::instance().run([ret](){ ret.get(); });
^
namedirectory.cpp:117:10: note: ‘<typeprefixerror>ret’ declared here
auto ret = restbed::Http::async(req, [this,cb,addr](const std::shared_ptr<restbed::Request>,
^~~
namedirectory.cpp: In member function ‘void ring::NameDirectory::lookupName(const string&, ring::NameDirectory::LookupCallback)’:
namedirectory.cpp:174:14: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
request->set_header("Accept", "*/*");
^~~~~~~~~~
namedirectory.cpp:175:14: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
request->set_header("Host", serverHost_);
^~~~~~~~~~
namedirectory.cpp:179:25: error: ‘restbed::Http’ has not been declared
auto ret = restbed::Http::async(request, [this,cb,name](const std::shared_ptr<restbed::Request>,
^~~~
namedirectory.cpp: In lambda function:
namedirectory.cpp:190:22: error: ‘restbed::Http’ has not been declared
restbed::Http::fetch(length, reply);
^~~~
namedirectory.cpp:192:33: error: no matching function for call to ‘restbed::Response::get_body(std::__cxx11::string&)’
reply->get_body(body);
^
In file included from /usr/include/restbed:13:0,
from namedirectory.cpp:27:
/usr/include/corvusoft/restbed/response.hpp:47:19: note: candidate: restbed::Bytes restbed::Response::get_body() const
Bytes get_body( void ) const;
^~~~~~~~
/usr/include/corvusoft/restbed/response.hpp:47:19: note: candidate expects 0 arguments, 1 provided
namedirectory.cpp: In lambda function:
namedirectory.cpp:221:41: error: ‘ret’ is not captured
ThreadPool::instance().run([ret](){ ret.get(); });
^~~
namedirectory.cpp:221:36: note: the lambda has no capture-default
ThreadPool::instance().run([ret](){ ret.get(); });
^
namedirectory.cpp:179:10: note: ‘<typeprefixerror>ret’ declared here
auto ret = restbed::Http::async(request, [this,cb,name](const std::shared_ptr<restbed::Request>,
^~~
namedirectory.cpp: In member function ‘void ring::NameDirectory::registerName(const string&, const string&, const string&, ring::NameDirectory::RegistrationCallback)’:
namedirectory.cpp:248:14: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
request->set_header("Accept", "*/*");
^~~~~~~~~~
namedirectory.cpp:249:14: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
request->set_header("Host", serverHost_);
^~~~~~~~~~
namedirectory.cpp:250:14: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
request->set_header("Content-Type", "application/json");
^~~~~~~~~~
namedirectory.cpp:251:14: error: ‘class restbed::Request’ has no member named ‘set_method’; did you mean ‘get_method’?
request->set_method("POST");
^~~~~~~~~~
namedirectory.cpp:258:14: error: ‘class restbed::Request’ has no member named ‘set_body’; did you mean ‘get_body’?
request->set_body(body);
^~~~~~~~
namedirectory.cpp:259:14: error: ‘class restbed::Request’ has no member named ‘set_header’; did you mean ‘get_header’?
request->set_header("Content-Length", ring::to_string(body.size()));
^~~~~~~~~~
namedirectory.cpp:265:25: error: ‘restbed::Http’ has not been declared
auto ret = restbed::Http::async(request,
^~~~
namedirectory.cpp: In lambda function:
namedirectory.cpp:277:22: error: ‘restbed::Http’ has not been declared
restbed::Http::fetch(length, reply);
^~~~
namedirectory.cpp:279:33: error: no matching function for call to ‘restbed::Response::get_body(std::__cxx11::string&)’
reply->get_body(body);
^
In file included from /usr/include/restbed:13:0,
from namedirectory.cpp:27:
/usr/include/corvusoft/restbed/response.hpp:47:19: note: candidate: restbed::Bytes restbed::Response::get_body() const
Bytes get_body( void ) const;
^~~~~~~~
/usr/include/corvusoft/restbed/response.hpp:47:19: note: candidate expects 0 arguments, 1 provided
namedirectory.cpp: In lambda function:
namedirectory.cpp:302:41: error: ‘ret’ is not captured
ThreadPool::instance().run([ret](){ ret.get(); });
^~~
namedirectory.cpp:302:36: note: the lambda has no capture-default
ThreadPool::instance().run([ret](){ ret.get(); });
^
namedirectory.cpp:265:10: note: ‘<typeprefixerror>ret’ declared here
auto ret = restbed::Http::async(request,
^~~
In file included from /usr/include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h:33:0,
from /usr/include/c++/6.2.1/bits/allocator.h:46,
from /usr/include/c++/6.2.1/string:41,
from /usr/include/c++/6.2.1/stdexcept:39,
from /usr/include/c++/6.2.1/array:39,
from /usr/include/c++/6.2.1/tuple:39,
from /usr/include/c++/6.2.1/functional:55,
from namedirectory.h:20,
from namedirectory.cpp:18:
/usr/include/c++/6.2.1/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = restbed::Request; _Args = {restbed::Uri&}; _Tp = restbed::Request]’:
/usr/include/c++/6.2.1/bits/alloc_traits.h:455:4: required from ‘static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = restbed::Request; _Args = {restbed::Uri&}; _Tp = restbed::Request; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<restbed::Request>]’
/usr/include/c++/6.2.1/bits/shared_ptr_base.h:520:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {restbed::Uri&}; _Tp = restbed::Request; _Alloc = std::allocator<restbed::Request>; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6.2.1/bits/shared_ptr_base.h:615:4: required from ‘std::__shared_count<_Lp>::__shared_count(std::_Sp_make_shared_tag, _Tp*, const _Alloc&, _Args&& ...) [with _Tp = restbed::Request; _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri&}; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6.2.1/bits/shared_ptr_base.h:1100:35: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri&}; _Tp = restbed::Request; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6.2.1/bits/shared_ptr.h:319:64: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri&}; _Tp = restbed::Request]’
/usr/include/c++/6.2.1/bits/shared_ptr.h:619:14: required from ‘std::shared_ptr<_Tp1> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = restbed::Request; _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri&}]’
/usr/include/c++/6.2.1/bits/shared_ptr.h:635:39: required from ‘std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = restbed::Request; _Args = {restbed::Uri&}]’
namedirectory.cpp:111:54: required from here
/usr/include/c++/6.2.1/ext/new_allocator.h:120:4: error: no matching function for call to ‘restbed::Request::Request(restbed::Uri&)’
{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/restbed:10:0,
from namedirectory.cpp:27:
/usr/include/corvusoft/restbed/request.hpp:43:13: note: candidate: restbed::Request::Request()
Request( void );
^~~~~~~
/usr/include/corvusoft/restbed/request.hpp:43:13: note: candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h:33:0,
from /usr/include/c++/6.2.1/bits/allocator.h:46,
from /usr/include/c++/6.2.1/string:41,
from /usr/include/c++/6.2.1/stdexcept:39,
from /usr/include/c++/6.2.1/array:39,
from /usr/include/c++/6.2.1/tuple:39,
from /usr/include/c++/6.2.1/functional:55,
from namedirectory.h:20,
from namedirectory.cpp:18:
/usr/include/c++/6.2.1/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = restbed::Request; _Args = {restbed::Uri}; _Tp = restbed::Request]’:
/usr/include/c++/6.2.1/bits/alloc_traits.h:455:4: required from ‘static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = restbed::Request; _Args = {restbed::Uri}; _Tp = restbed::Request; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<restbed::Request>]’
/usr/include/c++/6.2.1/bits/shared_ptr_base.h:520:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {restbed::Uri}; _Tp = restbed::Request; _Alloc = std::allocator<restbed::Request>; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6.2.1/bits/shared_ptr_base.h:615:4: required from ‘std::__shared_count<_Lp>::__shared_count(std::_Sp_make_shared_tag, _Tp*, const _Alloc&, _Args&& ...) [with _Tp = restbed::Request; _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri}; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6.2.1/bits/shared_ptr_base.h:1100:35: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri}; _Tp = restbed::Request; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6.2.1/bits/shared_ptr.h:319:64: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri}; _Tp = restbed::Request]’
/usr/include/c++/6.2.1/bits/shared_ptr.h:619:14: required from ‘std::shared_ptr<_Tp1> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = restbed::Request; _Alloc = std::allocator<restbed::Request>; _Args = {restbed::Uri}]’
/usr/include/c++/6.2.1/bits/shared_ptr.h:635:39: required from ‘std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = restbed::Request; _Args = {restbed::Uri}]’
namedirectory.cpp:173:69: required from here
/usr/include/c++/6.2.1/ext/new_allocator.h:120:4: error: no matching function for call to ‘restbed::Request::Request(restbed::Uri)’
{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/restbed:10:0,
from namedirectory.cpp:27:
/usr/include/corvusoft/restbed/request.hpp:43:13: note: candidate: restbed::Request::Request()
Request( void );
^~~~~~~
/usr/include/corvusoft/restbed/request.hpp:43:13: note: candidate expects 0 arguments, 1 provided
make[4]: *** [Makefile:589: libringacc_la-namedirectory.lo] Error 1
make[4]: Leaving directory '/tmp/makepkg-seb/ring-daemon-git/src/ring-daemon/src/ringdht'
make[3]: *** [Makefile:608: all-recursive] Error 1
make[3]: Leaving directory '/tmp/makepkg-seb/ring-daemon-git/src/ring-daemon/src/ringdht'
make[2]: *** [Makefile:968: all-recursive] Error 1
make[2]: Leaving directory '/tmp/makepkg-seb/ring-daemon-git/src/ring-daemon/src'
make[1]: *** [Makefile:537: all-recursive] Error 1
make[1]: Leaving directory '/tmp/makepkg-seb/ring-daemon-git/src/ring-daemon'
make: *** [Makefile:468: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...

dmidge commented on 2016-10-24 22:59

You need to add crypto++ to the dependency list of the package, otherwise, one (like me) can end up with a cryptopp dependency problem.

notuxius commented on 2016-10-09 15:52

errors on build:

Making all in sip
make[3]: Entering directory '/tmp/yaourt-tmp-not/aur-ring-daemon-git/src/ring-daemon/src/sip'
CXX libsiplink_la-sipaccountbase.lo
CXX libsiplink_la-sdp.lo
CXX libsiplink_la-sipaccount.lo
CXX libsiplink_la-sipcall.lo
CXX libsiplink_la-sipvoiplink.lo
sipvoiplink.cpp: In function ‘pj_bool_t ring::transaction_request_cb(pjsip_rx_data*)’:
sipvoiplink.cpp:350:87: error: ‘pjsip_dlg_create_uas_and_inc_lock’ was not declared in this scope
if (pjsip_dlg_create_uas_and_inc_lock(pjsip_ua_instance(), rdata, nullptr, &dialog) != PJ_SUCCESS) {
^
make[3]: *** [Makefile:600: libsiplink_la-sipvoiplink.lo] Error 1
make[3]: Leaving directory '/tmp/yaourt-tmp-not/aur-ring-daemon-git/src/ring-daemon/src/sip'
make[2]: *** [Makefile:958: all-recursive] Error 1
make[2]: Leaving directory '/tmp/yaourt-tmp-not/aur-ring-daemon-git/src/ring-daemon/src'
make[1]: *** [Makefile:539: all-recursive] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-not/aur-ring-daemon-git/src/ring-daemon'
make: *** [Makefile:470: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...

zorun commented on 2016-08-28 07:58

You're right, the situation with dependencies is not ideal. That being said, now that opendht has stabilized a bit, ring-daemon-git could actually depend on opendht (instead of opendht-git).

For the naming convention, the -git suffix indicates that the package always builds from the latest commit. ring-daemon, on the other hand, builds from a fixed source (fixed commit), so whether it's using git or not is irrelevant.

I don't like using contrib/ to build things statically, but maybe it's indeed the best solution for the -git package.

All comments