Yate: bump version

This commit is contained in:
Sergei Reznikov
2021-12-23 23:48:22 +03:00
parent 301c10a766
commit 35bed36899
6 changed files with 25124 additions and 229 deletions

View File

@@ -0,0 +1,18 @@
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "Yate",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";

View File

@@ -1,154 +0,0 @@
From d35adb5da7f1b060c52c857bf22808628478ffff Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 29 Apr 2020 14:25:19 +0000
Subject: Fix build on Haiku
diff --git a/clients/qtclient.pro b/clients/qtclient.pro
index 60c1b2a..48b9142 100644
--- a/clients/qtclient.pro
+++ b/clients/qtclient.pro
@@ -17,7 +17,7 @@ RCC_DIR = $${DESTDIR}/clients
UI_DIR = $${DESTDIR}/clients
INCLUDEPATH += .. qt4 ../modules/qt4
-unix:!mac:LIBS += -lpthread -lasound
+unix:!mac:!haiku:LIBS += -lpthread -lasound
mac:LIBS += -framework CoreFoundation -framework CoreServices -framework CoreAudio -framework AudioUnit -framework AudioToolbox
LIBS += -L$$DESTDIR -lyate -lbasemodules
@@ -32,7 +32,7 @@ SOURCES += main-qt4.cpp \
mac:SOURCES += ../modules/client/coreaudio.cpp
win32:SOURCES += ../modules/client/dsoundchan.cpp
-unix:!mac:SOURCES += ../modules/client/alsachan.cpp
+unix:!mac:!haiku:SOURCES += ../modules/client/alsachan.cpp
HEADERS += qt4/qt4client.h \
../modules/qt4/widgetlist.h \
@@ -103,4 +103,4 @@ mac {
unix:!mac {
QMAKE_POST_LINK += $$quote(ln -s libbasemodules.so.1.0.0 $${DESTDIR}/libbasemodules.yate $$escape_expand(\n\t))
-}
\ No newline at end of file
+}
diff --git a/engine/Mutex.cpp b/engine/Mutex.cpp
index 40c5d95..2ecccd7 100644
--- a/engine/Mutex.cpp
+++ b/engine/Mutex.cpp
@@ -32,7 +32,7 @@ typedef HANDLE HSEMAPHORE;
#ifdef MUTEX_HACK
extern "C" {
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__HAIKU__)
extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind);
#define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
#else
diff --git a/engine/Thread.cpp b/engine/Thread.cpp
index 4cf7120..dd77714 100644
--- a/engine/Thread.cpp
+++ b/engine/Thread.cpp
@@ -162,6 +162,7 @@ ThreadPrivate* ThreadPrivate::create(Thread* t,const char* name,Thread::Priority
default:
break;
}
+#ifndef __HAIKU__
int err = ::pthread_attr_setinheritsched(&attr,PTHREAD_EXPLICIT_SCHED);
if (!err)
err = ::pthread_attr_setschedpolicy(&attr,policy);
@@ -179,6 +180,7 @@ ThreadPrivate* ThreadPrivate::create(Thread* t,const char* name,Thread::Priority
#ifdef XDEBUG
else
Debug(DebugInfo,"Successfully set high thread priority %d",prio);
+#endif
#endif
}
#endif /* _WINDOWS */
@@ -211,7 +213,7 @@ ThreadPrivate* ThreadPrivate::create(Thread* t,const char* name,Thread::Priority
}
#else /* _WINDOWS */
e = ::pthread_create(&p->thread,&attr,startFunc,p);
-#ifdef PTHREAD_INHERIT_SCHED
+#if defined(PTHREAD_INHERIT_SCHED) && !defined(__HAIKU__)
if ((0 == i) && (EPERM == e) && (prio > Thread::Normal)) {
Debug(DebugWarn,"Failed to create thread with priority %d, trying with inherited",prio);
::pthread_attr_setinheritsched(&attr,PTHREAD_INHERIT_SCHED);
diff --git a/engine/engine.pro b/engine/engine.pro
index 1c6a7e2..ef5178f 100644
--- a/engine/engine.pro
+++ b/engine/engine.pro
@@ -12,7 +12,7 @@ mac|linux:DEFINES += ATOMIC_OPS HAVE_GMTOFF HAVE_INT_TZ HAVE_POLL HAVE_NTOP HAVE
# engine/regex/regex.c
mac:DEFINES += STDC_HEADERS
# engine/Mutex.cpp
-mac:DEFINES += MUTEX_HACK
+mac|haiku:DEFINES += MUTEX_HACK
linux:DEFINES += HAVE_TIMEDLOCK HAVE_TIMEDWAIT
# engine/Thread.cpp
linux:DEFINES += HAVE_PRCTL
@@ -25,8 +25,9 @@ mac:INCLUDEPATH += ./macosx
linux:INCLUDEPATH -= ./regex
win32:INCLUDEPATH += ../windows
-LIBS += -lresolv -lpthread
+!haiku:LIBS += -lresolv -lpthread
mac:LIBS += -lobjc -framework Foundation
+haiku:LIBS += -lnetwork
SOURCES += $$files(*.cpp) $$files(regex/*.c)
mac:SOURCES += $$files(macosx/*.mm)
@@ -34,4 +35,4 @@ linux:SOURCES -= $$files(regex/*.c)
HEADERS += $$files(*.h) $$files(tables/*.h) $$files(regex/*.h)
mac:HEADERS += $$files(macosx/*.h)
-linux:HEADERS -= $$files(regex/*.h)
\ No newline at end of file
+linux:HEADERS -= $$files(regex/*.h)
diff --git a/modules/modules.pro b/modules/modules.pro
index e2700dd..5d23226 100644
--- a/modules/modules.pro
+++ b/modules/modules.pro
@@ -7,7 +7,7 @@ DESTDIR = ../build
OBJECTS_DIR = $${DESTDIR}/modules
# unix and (:) not mac
-unix:!mac:DEFINES += HAVE_MALLINFO USE_TLS_METHOD
+unix:!mac:!haiku:DEFINES += HAVE_MALLINFO USE_TLS_METHOD
unix:mac:DEFINES += NO_AESCTR
INCLUDEPATH += .. ../libs/yrtp ../libs/ysip ../libs/ysdp ../libs/yiax ../libs/yjabber
mac:INCLUDEPATH += /opt/local/include
diff --git a/modules/rmanager.cpp b/modules/rmanager.cpp
index 3c3fe50..3bc236d 100644
--- a/modules/rmanager.cpp
+++ b/modules/rmanager.cpp
@@ -29,6 +29,11 @@
#include <stdio.h>
#include <fcntl.h>
+#ifdef __HAIKU__
+#undef HAVE_MALLINFO
+#undef HAVE_COREDUMPER
+#endif
+
#ifdef NDEBUG
#undef HAVE_MALLINFO
#undef HAVE_COREDUMPER
diff --git a/yatemath.h b/yatemath.h
index 2a42426..7207e3e 100644
--- a/yatemath.h
+++ b/yatemath.h
@@ -25,6 +25,9 @@
#include <yateclass.h>
#include <math.h>
#include <string.h>
+#ifdef __HAIKU__
+#undef bzero
+#endif
namespace TelEngine {
--
2.26.0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,106 @@
From 8d56f7a3e1d87f52a62b0db57a8b7fba4dc921e1 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 22 Dec 2021 16:50:04 +0300
Subject: Fix build on Haiku
diff --git a/configure.ac b/configure.ac
index 77e4287..6397879 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1803,7 +1803,7 @@ INSTALL_D="install -D"
CFLAGS=`echo "$CFLAGS" | sed 's/\(^\| \+\)-g[[0-9]]*//' | sed 's/[[[:space:]]]\{2,\}/ /g'`
MODULE_CFLAGS="-fno-exceptions -fPIC $HAVE_GCC_FORMAT_CHECK $HAVE_BLOCK_RETURN"
MODULE_CPPFLAGS="$HAVE_NO_OVERLOAD_VIRT_WARN $RTTI_OPT $MODULE_CFLAGS"
-MODULE_LDRELAX="-rdynamic -shared"
+MODULE_LDRELAX="-shared"
MODULE_SYMBOLS="-Wl,--retain-symbols-file,/dev/null"
SONAME_OPT="-shared -Wl,-soname="
case "x$uname_os" in
diff --git a/engine/Engine.cpp b/engine/Engine.cpp
index da817a0..34ff80c 100644
--- a/engine/Engine.cpp
+++ b/engine/Engine.cpp
@@ -44,6 +44,10 @@ __declspec(dllimport) BOOL WINAPI SHGetSpecialFolderPathA(HWND,LPSTR,INT,BOOL);
#else // _WINDOWS
+#ifdef __HAIKU__
+typedef void (*sighandler_t)(int);
+#endif
+
#include "yatepaths.h"
#include <dirent.h>
#include <dlfcn.h>
diff --git a/engine/Mutex.cpp b/engine/Mutex.cpp
index 40c5d95..2ecccd7 100644
--- a/engine/Mutex.cpp
+++ b/engine/Mutex.cpp
@@ -32,7 +32,7 @@ typedef HANDLE HSEMAPHORE;
#ifdef MUTEX_HACK
extern "C" {
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__HAIKU__)
extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind);
#define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
#else
diff --git a/engine/Socket.cpp b/engine/Socket.cpp
index 103a736..405b44f 100644
--- a/engine/Socket.cpp
+++ b/engine/Socket.cpp
@@ -40,7 +40,7 @@
#endif
#undef HAS_AF_UNIX
-
+#undef HAVE_GHBN_R
#ifndef _WINDOWS
#include <net/if.h>
diff --git a/engine/Thread.cpp b/engine/Thread.cpp
index b62626c..80adb2f 100644
--- a/engine/Thread.cpp
+++ b/engine/Thread.cpp
@@ -201,6 +201,7 @@ ThreadPrivate* ThreadPrivate::create(Thread* t,const char* name,Thread::Priority
default:
break;
}
+#ifndef __HAIKU__
int err = ::pthread_attr_setinheritsched(&attr,PTHREAD_EXPLICIT_SCHED);
if (!err)
err = ::pthread_attr_setschedpolicy(&attr,policy);
@@ -218,6 +219,7 @@ ThreadPrivate* ThreadPrivate::create(Thread* t,const char* name,Thread::Priority
#ifdef XDEBUG
else
Debug(DebugInfo,"Successfully set high thread priority %d",prio);
+#endif
#endif
}
#endif /* _WINDOWS */
@@ -250,7 +252,7 @@ ThreadPrivate* ThreadPrivate::create(Thread* t,const char* name,Thread::Priority
}
#else /* _WINDOWS */
e = ::pthread_create(&p->thread,&attr,startFunc,p);
-#ifdef PTHREAD_INHERIT_SCHED
+#if defined(PTHREAD_INHERIT_SCHED) && !defined(__HAIKU__)
if ((0 == i) && (EPERM == e) && (prio > Thread::Normal)) {
Debug(DebugWarn,"Failed to create thread with priority %d, trying with inherited",prio);
::pthread_attr_setinheritsched(&attr,PTHREAD_INHERIT_SCHED);
diff --git a/yatemath.h b/yatemath.h
index 2a42426..7207e3e 100644
--- a/yatemath.h
+++ b/yatemath.h
@@ -25,6 +25,9 @@
#include <yateclass.h>
#include <math.h>
#include <string.h>
+#ifdef __HAIKU__
+#undef bzero
+#endif
namespace TelEngine {
--
2.30.2

View File

@@ -1,75 +0,0 @@
SUMMARY="Universal telephony client"
DESCRIPTION="Yate stands for Yet Another Telephony Engine, and like the name \
states it is mainly a telephony engine; while currently focused on Voice over \
Internet Protocol (VoIP) and PSTN, its power lies in its ability to be easily \
extended. Voice, video, data and instant messenging can all be unified under \
Yate's flexible routing engine, maximizing communications efficiency and \
minimizing infrastructure costs for businesses."
HOMEPAGE="http://www.yate.ro/"
COPYRIGHT="2010-2020 KDE Organisation"
LICENSE="GNU LGPL v2"
REVISION="1"
srcGitRev="8505d691922a3df3545d9b4196170d6084467e37"
SOURCE_URI="https://github.com/keepitsimpletech/yate/archive/$srcGitRev.zip"
CHECKSUM_SHA256="2891f8a128421acbf059a72b103c8b9ad10f65052bd0d1c8ed223250e8945b55"
SOURCE_DIR="yate-$srcGitRev"
PATCHES="yate-$portVersion.patchset"
ARCHITECTURES="?all !x86_gcc2"
SECONDARY_ARCHITECTURES="?x86"
PROVIDES="
yate$secondaryArchSuffix = $portVersion
app:YateClient$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libQt5Core$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:autoconf
cmd:g++$secondaryArchSuffix
cmd:make
cmd:qmake
"
BUILD()
{
./autogen.sh
./configure
make yatepaths.h
qmake -o Makefile.qmake Yate.pro
make $jobArgs -f Makefile.qmake
}
INSTALL()
{
mkdir -p $appsDir/Yate
cp build/* $appsDir/Yate
cp -r client-conf.d $appsDir/Yate
local APP_SIGNATURE="application/x-vnd.qt5-yate"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/yate.rdef.in > yate.rdef
addResourcesToBinaries yate.rdef $appsDir/Yate/YateClient
addAppDeskbarSymlink $appsDir/Yate/YateClient
}

View File

@@ -0,0 +1,166 @@
SUMMARY="Yet Another Telephony Engine"
DESCRIPTION="Yate stands for Yet Another Telephony Engine, and like the name \
states it is mainly a telephony engine; while currently focused on Voice over \
Internet Protocol (VoIP) and PSTN, its power lies in its ability to be easily \
extended. Voice, video, data and instant messenging can all be unified under \
Yate's flexible routing engine, maximizing communications efficiency and \
minimizing infrastructure costs for businesses."
HOMEPAGE="http://www.yate.ro/"
COPYRIGHT="2005-2021 Null Team"
LICENSE="GNU LGPL v2"
REVISION="1"
SOURCE_URI="http://voip.null.ro/tarballs/yate6/yate-6.4.0-1.tar.gz"
CHECKSUM_SHA256="8c23dc6bffbf8d478db3a85964b5019771c8f6c9acf5220f3465516a748a03b0"
SOURCE_DIR="yate"
PATCHES="
yate-$portVersion.patchset
yate-$portVersion-qt5.patchset
"
ADDITIONAL_FILES="yate.rdef.in"
ARCHITECTURES="?all !x86_gcc2"
SECONDARY_ARCHITECTURES="?x86"
GLOBAL_WRITABLE_FILES="
settings/yate/accfile.conf keep-old
settings/yate/amrnbcodec.conf keep-old
settings/yate/analog.conf keep-old
settings/yate/cache.conf keep-old
settings/yate/callcounters.conf keep-old
settings/yate/callfork.conf keep-old
settings/yate/camel_map.conf keep-old
settings/yate/ccongestion.conf keep-old
settings/yate/cdrbuild.conf keep-old
settings/yate/cdrfile.conf keep-old
settings/yate/ciscosm.conf keep-old
settings/yate/clustering.conf keep-old
settings/yate/cpuload.conf keep-old
settings/yate/dbpbx.conf keep-old
settings/yate/dsoundchan.conf keep-old
settings/yate/dummyradio.conf keep-old
settings/yate/enumroute.conf keep-old
settings/yate/eventlogs.conf keep-old
settings/yate/extmodule.conf keep-old
settings/yate/fileinfo.conf keep-old
settings/yate/filetransfer.conf keep-old
settings/yate/gvoice.conf keep-old
settings/yate/h323chan.conf keep-old
settings/yate/heartbeat.conf keep-old
settings/yate/isupmangler.conf keep-old
settings/yate/jabberclient.conf keep-old
settings/yate/jabberserver.conf keep-old
settings/yate/javascript.conf keep-old
settings/yate/jbfeatures.conf keep-old
settings/yate/lateroute.conf keep-old
settings/yate/lksctp.conf keep-old
settings/yate/mgcpca.conf keep-old
settings/yate/mgcpgw.conf keep-old
settings/yate/moh.conf keep-old
settings/yate/monitoring.conf keep-old
settings/yate/mux.conf keep-old
settings/yate/mysqldb.conf keep-old
settings/yate/openssl.conf keep-old
settings/yate/pbxassist.conf keep-old
settings/yate/pgsqldb.conf keep-old
settings/yate/presence.conf keep-old
settings/yate/providers.conf keep-old
settings/yate/queues.conf keep-old
settings/yate/queuesnotify.conf keep-old
settings/yate/radiotest.conf keep-old
settings/yate/regexroute.conf keep-old
settings/yate/regfile.conf keep-old
settings/yate/register.conf keep-old
settings/yate/rmanager.conf keep-old
settings/yate/sigtransport.conf keep-old
settings/yate/sip_cnam_lnp.conf keep-old
settings/yate/sipfeatures.conf keep-old
settings/yate/sqlitedb.conf keep-old
settings/yate/ss7_lnp_ansi.conf keep-old
settings/yate/subscription.conf keep-old
settings/yate/tdmcard.conf keep-old
settings/yate/tonegen.conf keep-old
settings/yate/users.conf keep-old
settings/yate/wiresniff.conf keep-old
settings/yate/wpcard.conf keep-old
settings/yate/yate-qt4.conf keep-old
settings/yate/yate.conf keep-old
settings/yate/Yate.conf keep-old
settings/yate/ybladerf.conf keep-old
settings/yate/yiaxchan.conf keep-old
settings/yate/yjinglechan.conf keep-old
settings/yate/yradius.conf keep-old
settings/yate/yrtpchan.conf keep-old
settings/yate/ysigchan.conf keep-old
settings/yate/ysipchan.conf keep-old
settings/yate/ysnmpagent.conf keep-old
settings/yate/ysockschan.conf keep-old
settings/yate/ystunchan.conf keep-old
settings/yate/zapcard.conf keep-old
settings/yate/zlibcompress.conf keep-old
"
PROVIDES="
yate$secondaryArchSuffix = $portVersion
app:YateClient$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libQt5Core$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:autoconf
cmd:g++$secondaryArchSuffix
cmd:make
cmd:qmake
cmd:which
"
BUILD()
{
./autogen.sh
export LDFLAGS=-lnetwork
./configure \
--prefix $appsDir/Yate \
--sysconfdir=$settingsDir \
--libdir=$appsDir/Yate/lib \
--sharedstatedir=$appsDir/Yate/data
make $jobArgs
}
INSTALL()
{
make install
mv $appsDir/Yate/bin/yate-qt5 $appsDir/Yate/Yate
mv $settingsDir/yate/yate.conf $settingsDir/yate/Yate.conf
mv $settingsDir/yate/yate-qt5.conf $settingsDir/yate/Yate-qt5.conf
# FIXME: this is wrong, paths need to be configured propely
mv $appsDir/Yate/share/yate/* $appsDir/Yate/share
mv $appsDir/Yate/lib/yate/* $appsDir/Yate/lib
local APP_SIGNATURE="application/x-vnd.qt5-yate"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/yate.rdef.in > yate.rdef
addResourcesToBinaries yate.rdef $appsDir/Yate/Yate
addAppDeskbarSymlink $appsDir/Yate/Yate
}