Add baresip package.
authorJiri Slachta <slachta@cesnet.cz>
Thu, 4 Apr 2013 16:08:57 +0000 (18:08 +0200)
committerJiri Slachta <slachta@cesnet.cz>
Thu, 4 Apr 2013 16:08:57 +0000 (18:08 +0200)
Signed-off-by: Jiri Slachta <slachta@cesnet.cz>
baresip/Makefile [new file with mode: 0644]
baresip/files/baresip.init [new file with mode: 0644]
baresip/patches/100-videodev-compat.patch [new file with mode: 0644]

diff --git a/baresip/Makefile b/baresip/Makefile
new file mode 100644 (file)
index 0000000..f325467
--- /dev/null
@@ -0,0 +1,151 @@
+#
+# Copyright (C) 2010-2012 OpenWrt.org
+# Copyright (C) 2010 Alfred E. Heggestad
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=baresip
+PKG_VERSION:=0.4.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.creytiv.com/pub/
+PKG_MD5SUM:=1574e40bace9593ec40c527299654bb6
+
+baresip-mods:= \
+       alsa \
+       avcodec \
+       avformat \
+       cons \
+       evdev \
+       g711 \
+       g722 \
+       oss \
+       sdl \
+       speex \
+       stdio \
+       uuid \
+       v4l \
+       v4l2 \
+
+PKG_CONFIG_DEPENDS:= \
+       $(patsubst %,CONFIG_PACKAGE_baresip-mod-%,$(baresip-mods)) \
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/baresip/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.creytiv.com/
+endef
+
+define Package/baresip
+$(call Package/baresip/Default)
+  TITLE:=Portable and modular SIP User-Agent with A/V support
+  DEPENDS:=+libre +librem +libpthread
+endef
+
+
+baresip-mod-alsa      := USE_ALSA
+baresip-mod-avcodec   := USE_FFMPEG
+baresip-mod-avformat  := USE_FFMPEG_AVFORMAT
+baresip-mod-cons      := USE_CONS
+baresip-mod-evdev     := USE_EVDEV
+baresip-mod-g711      := USE_G711
+baresip-mod-g722      := USE_G722
+baresip-mod-oss       := USE_OSS
+baresip-mod-sdl       := USE_SDL
+baresip-mod-speex     := USE_SPEEX
+baresip-mod-stdio     := USE_STDIO
+baresip-mod-uuid      := USE_UUID
+baresip-mod-v4l       := USE_V4L
+baresip-mod-v4l2      := USE_V4L2
+
+BARESIP_MOD_OPTIONS:= \
+       MOD_AUTODETECT= \
+       $(foreach m,$(baresip-mods),$(baresip-mod-$(m))=$(if $(CONFIG_PACKAGE_baresip-mod-$(m)),1))
+
+TARGET_CFLAGS += $(FPIC)
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
+               LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
+               LIBRE_SO="$(STAGING_DIR)/usr/lib" \
+               LIBREM_PATH="../rem" \
+               CC="$(TARGET_CC)" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               EXTRA_CFLAGS="$(TARGET_CFLAGS) -DOPENWRT" \
+               SYSROOT="$$$$($(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s#/include/pthread.h##p')" \
+               SYSROOT_ALT="$(STAGING_DIR)/usr" \
+               RELEASE=1 \
+               CROSS_COMPILE="$(TARGET_CROSS)" \
+               OS="linux" \
+               $(BARESIP_MOD_OPTIONS) \
+               all install
+endef
+
+define Package/baresip/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/baresip $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib/baresip/modules
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/ice.so \
+               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/stun.so \
+               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/turn.so \
+               $(1)/usr/lib/baresip/modules/.
+       $(INSTALL_DIR) $(1)/usr/share/baresip
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/baresip/* $(1)/usr/share/baresip/.
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/baresip.init $(1)/etc/init.d/baresip
+endef
+
+
+#
+# 1. Name
+# 2. Title
+# 3. Files
+# 4. Depends
+#
+define BuildPlugin
+
+  define Package/baresip-mod-$(1)
+    $$(call Package/baresip/Default)
+    TITLE:= baresip $(2) module
+    DEPENDS:= baresip $(4)
+  endef
+
+  define Package/baresip-mod-$(1)/install
+       [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/baresip/modules
+       for f in $(3); do \
+               $(CP) \
+                       $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/$$$$$$$${f}.so \
+                       $$(1)/usr/lib/baresip/modules/ ; \
+       done
+  endef
+
+  $$(eval $$(call BuildPackage,baresip-mod-$(1)))
+endef
+
+
+$(eval $(call BuildPackage,baresip))
+
+$(eval $(call BuildPlugin,alsa,ALSA audio driver,alsa,+PACKAGE_baresip-mod-alsa:alsa-lib))
+$(eval $(call BuildPlugin,avcodec,FFmpeg video codecs,avcodec,+PACKAGE_baresip-mod-avcodec:libffmpeg-full))
+$(eval $(call BuildPlugin,avformat,FFmpeg video source,avformat,+PACKAGE_baresip-mod-avformat:libffmpeg-full))
+$(eval $(call BuildPlugin,cons,console UI,cons,))
+$(eval $(call BuildPlugin,evdev,input event device UI,evdev,))
+$(eval $(call BuildPlugin,g711,G.711 audio codec,g711,))
+$(eval $(call BuildPlugin,g722,G.722 audio codec,g722,+PACKAGE_baresip-mod-g722:libspandsp))
+$(eval $(call BuildPlugin,sdl,SDL video display,sdl,+libsdl))
+$(eval $(call BuildPlugin,oss,OSS audio driver,oss,))
+$(eval $(call BuildPlugin,speex,Speex audio codec,speex,+PACKAGE_baresip-mod-speex:libspeex))
+$(eval $(call BuildPlugin,stdio,standard I/O UI,stdio,))
+$(eval $(call BuildPlugin,uuid,UUID,uuid,+libuuid))
+$(eval $(call BuildPlugin,v4l,Video4Linux video source,v4l,+PACKAGE_baresip-mod-v4l:libv4l))
+$(eval $(call BuildPlugin,v4l2,Video4Linux2 video source,v4l2,+PACKAGE_baresip-mod-v4l2:libv4l))
diff --git a/baresip/files/baresip.init b/baresip/files/baresip.init
new file mode 100644 (file)
index 0000000..e398595
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010 Alfred E. Heggestad
+#
+
+START=92
+
+start() {
+       service_start /usr/bin/baresip -d
+}
+
+stop() {
+       service_stop /usr/bin/baresip
+}
diff --git a/baresip/patches/100-videodev-compat.patch b/baresip/patches/100-videodev-compat.patch
new file mode 100644 (file)
index 0000000..4b9997c
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/modules/v4l/v4l.c
++++ b/modules/v4l/v4l.c
+@@ -14,7 +14,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #undef __STRICT_ANSI__ /* needed for RHEL4 kernel 2.6.9 */
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #include <pthread.h>
+ #include <re.h>
+ #include <baresip.h>