From 0b06159f4b57e95916081fde7099837b37dac053 Mon Sep 17 00:00:00 2001
From: j1nx
Date: Mon, 8 Jun 2020 10:50:46 +0200
Subject: [PATCH] MycroftOS: Add libre, librem and baresip package. This so
users can install the voip skill from jarbas.
---
buildroot-external/Config.in | 3 +
.../configs/rpi4_64-gui_defconfig | 4 ++
buildroot-external/package/baresip/Config.in | 6 ++
buildroot-external/package/baresip/baresip.mk | 59 +++++++++++++++++++
buildroot-external/package/libre/Config.in | 8 +++
buildroot-external/package/libre/libre.mk | 42 +++++++++++++
buildroot-external/package/librem/Config.in | 6 ++
buildroot-external/package/librem/librem.mk | 39 ++++++++++++
8 files changed, 167 insertions(+)
create mode 100644 buildroot-external/package/baresip/Config.in
create mode 100644 buildroot-external/package/baresip/baresip.mk
create mode 100644 buildroot-external/package/libre/Config.in
create mode 100644 buildroot-external/package/libre/libre.mk
create mode 100644 buildroot-external/package/librem/Config.in
create mode 100644 buildroot-external/package/librem/librem.mk
diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in
index 108dac38..14e58de2 100644
--- a/buildroot-external/Config.in
+++ b/buildroot-external/Config.in
@@ -9,6 +9,7 @@ menu "Mycroft A.I. Personal Assistant"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/wifi-ap/Config.in"
menu "Additional drivers, libraries and/or applications"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/alsa-plugins/Config.in"
+ source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/baresip/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/btspeaker/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/fann/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/hostname-service/Config.in"
@@ -50,6 +51,8 @@ menu "KF5"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/kf5-solid/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/kf5-sonnet/Config.in"
endmenu
+ source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/libre/Config.in"
+ source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/librem/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/lottie-qml/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/respeaker/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/snapcast/Config.in"
diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig
index f49a6b63..2d22ab76 100644
--- a/buildroot-external/configs/rpi4_64-gui_defconfig
+++ b/buildroot-external/configs/rpi4_64-gui_defconfig
@@ -5,6 +5,7 @@ BR2_DL_DIR="../downloads"
BR2_CCACHE=y
BR2_CCACHE_DIR="../ccache"
BR2_GLOBAL_PATCH_DIR="../buildroot-patches"
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
BR2_FORCE_HOST_BUILD=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_PACKAGE_GLIBC_UTILS=y
@@ -478,6 +479,7 @@ BR2_PACKAGE_MYCROFT_SERVICE=y
BR2_PACKAGE_MYCROFT_SPLASH=y
BR2_PACKAGE_WIFI_AP=y
BR2_PACKAGE_ALSA_PLUGINS=y
+BR2_PACKAGE_BARESIP=y
BR2_PACKAGE_BTSPEAKER=y
BR2_PACKAGE_FANN=y
BR2_PACKAGE_HOSTNAME_SERVICE=y
@@ -496,6 +498,8 @@ BR2_PACKAGE_KF5_KWAYLAND=y
BR2_PACKAGE_KF5_PHONON=y
BR2_PACKAGE_KF5_PLASMA_FRAMEWORK=y
BR2_PACKAGE_KF5_PLASMA_NANO=y
+BR2_PACKAGE_LIBRE=y
+BR2_PACKAGE_LIBREM=y
BR2_PACKAGE_LOTTIE_QML=y
BR2_PACKAGE_SNAPCAST=y
BR2_PACKAGE_SNAPCAST_SERVER=y
diff --git a/buildroot-external/package/baresip/Config.in b/buildroot-external/package/baresip/Config.in
new file mode 100644
index 00000000..cd247821
--- /dev/null
+++ b/buildroot-external/package/baresip/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_BARESIP
+ bool "baresip"
+ help
+ Modular SIP Useragent.
+
+ http://www.creytiv.com/
diff --git a/buildroot-external/package/baresip/baresip.mk b/buildroot-external/package/baresip/baresip.mk
new file mode 100644
index 00000000..13741ef1
--- /dev/null
+++ b/buildroot-external/package/baresip/baresip.mk
@@ -0,0 +1,59 @@
+#############################################################
+#
+# BARESIP
+#
+#############################################################
+
+BARESIP_VERSION = 0.6.5
+BARESIP_SITE = http://www.creytiv.com/pub
+BARESIP_DEPENDENCIES = libre librem zlib
+
+BARESIP_MAKE_ENV = \
+ $(TARGET_CONFIGURE_OPTS) \
+ SYSROOT=$(STAGING_DIR)/usr \
+ LD="$(TARGET_CC)" \
+ LFLAGS="$(TARGET_LDFLAGS)"
+
+BARESIP_MAKE_ARGS = \
+ LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
+ LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
+ LIBRE_SO="$(STAGING_DIR)/usr/lib" \
+ LIBREM_MK="$(STAGING_DIR)/usr/share/rem/rem.mk" \
+ LIBREM_INC="$(STAGING_DIR)/usr/include/rem" \
+ LIBREM_SO="$(STAGING_DIR)/usr/lib"
+
+ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
+BARESIP_DEPENDENCIES += alsa-lib
+endif
+
+ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y)
+BARESIP_DEPENDENCIES += ffmpeg
+BARESIP_MAKE_ENV += \
+ CFLAGS+=-DCODEC_TYPE_VIDEO=AVMEDIA_TYPE_VIDEO
+endif
+
+ifeq ($(BR2_PACKAGE_LIBSNDFILE),y)
+BARESIP_DEPENDENCIES += libsndfile
+endif
+
+ifeq ($(BR2_PACKAGE_SPEEX),y)
+BARESIP_DEPENDENCIES += speex
+endif
+
+ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y)
+BARESIP_DEPENDENCIES += util-linux
+endif
+
+ifeq ($(BR2_PACKAGE_XORG7),y)
+BARESIP_DEPENDENCIES += xlib_libXext
+endif
+
+define BARESIP_BUILD_CMDS
+ $(BARESIP_MAKE_ENV) $(MAKE) $(BARESIP_MAKE_ARGS) -C $(@D) all
+endef
+
+define BARESIP_INSTALL_TARGET_CMDS
+ $(BARESIP_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(MAKE) $(BARESIP_MAKE_ARGS) -C $(@D) install
+endef
+
+$(eval $(generic-package))
diff --git a/buildroot-external/package/libre/Config.in b/buildroot-external/package/libre/Config.in
new file mode 100644
index 00000000..5e1d5185
--- /dev/null
+++ b/buildroot-external/package/libre/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBRE
+ bool "libre"
+ help
+ Toolkit library for asynchronous network
+ IO with protocol stacks including SIP, SDP,
+ RTP, STUN, TURN, ICE, BFCP and DNS.
+
+ http://www.creytiv.com/
diff --git a/buildroot-external/package/libre/libre.mk b/buildroot-external/package/libre/libre.mk
new file mode 100644
index 00000000..256661b3
--- /dev/null
+++ b/buildroot-external/package/libre/libre.mk
@@ -0,0 +1,42 @@
+#############################################################
+#
+# libre
+#
+#############################################################
+
+LIBRE_VERSION = 0.6.1
+LIBRE_SOURCE = re-$(LIBRE_VERSION).tar.gz
+LIBRE_SITE = http://www.creytiv.com/pub
+LIBRE_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+LIBRE_DEPENDENCIES += openssl
+endif
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+LIBRE_DEPENDENCIES += zlib
+endif
+
+define LIBRE_BUILD_CMDS
+ $(TARGET_MAKE_ENV) \
+ $(MAKE) -C $(@D) \
+ LIBRE_MK=$(STAGING_DIR)/usr/share/re/re.mk \
+ LIBRE_INC=$(STAGING_DIR)/usr/include/re \
+ LIBRE_SO=$(STAGING_DIR)/usr/lib \
+ CC="$(TARGET_CC)" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+ EXTRA_LFLAGS="-lm" \
+ DESTDIR="$(STAGING_DIR)" \
+ SYSROOT="$(STAGING_DIR)/usr" \
+ SYSROOT_ALT="$(STAGING_DIR)/usr" \
+ RELEASE=1 \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ OS=linux \
+ all install
+endef
+
+
+define LIBRE_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 644 -D $(@D)/libre.so $(TARGET_DIR)/usr/lib/libre.so
+endef
+
+$(eval $(generic-package))
diff --git a/buildroot-external/package/librem/Config.in b/buildroot-external/package/librem/Config.in
new file mode 100644
index 00000000..b64c2a66
--- /dev/null
+++ b/buildroot-external/package/librem/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_LIBREM
+ bool "librem"
+ help
+ Toolkit library for real-time audio and video processing.
+
+ http://www.creytiv.com/
diff --git a/buildroot-external/package/librem/librem.mk b/buildroot-external/package/librem/librem.mk
new file mode 100644
index 00000000..d5a5634c
--- /dev/null
+++ b/buildroot-external/package/librem/librem.mk
@@ -0,0 +1,39 @@
+#############################################################
+#
+# librem
+#
+#############################################################
+
+LIBREM_VERSION = 0.6.0
+LIBREM_SOURCE = rem-$(LIBREM_VERSION).tar.gz
+LIBREM_SITE = http://www.creytiv.com/pub
+LIBREM_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_LIBRE),y)
+LIBREM_DEPENDENCIES += libre
+endif
+
+define LIBREM_BUILD_CMDS
+ $(TARGET_MAKE_ENV) \
+ $(MAKE) -C $(@D) \
+ LIBRE_MK=$(STAGING_DIR)/usr/share/re/re.mk \
+ LIBRE_INC=$(STAGING_DIR)/usr/include/re \
+ LIBRE_SO=$(STAGING_DIR)/usr/lib \
+ HAVE_LIBRESOLV= \
+ CC="$(TARGET_CC)" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+ EXTRA_LFLAGS="-lm" \
+ DESTDIR="$(STAGING_DIR)" \
+ SYSROOT="$(STAGING_DIR)/usr" \
+ SYSROOT_ALT="$(STAGING_DIR)/usr" \
+ RELEASE=1 \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ OS=linux \
+ all install
+endef
+
+define LIBREM_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 644 -D $(@D)/librem.so $(TARGET_DIR)/usr/lib/librem.so
+endef
+
+$(eval $(generic-package))