packages/restund: update to 0.3.0 (thanks to Alfred E. Heggestad), make it modular...
authorNicolas Thill <nico@openwrt.org>
Fri, 4 Nov 2011 22:12:42 +0000 (22:12 +0000)
committerNicolas Thill <nico@openwrt.org>
Fri, 4 Nov 2011 22:12:42 +0000 (22:12 +0000)
SVN-Revision: 28757

net/restund/Makefile
net/restund/files/restund.init
net/restund/patches/101-cross.patch [new file with mode: 0644]

index cf82a43e6e976bccd17e91d97926c3b4c497b3ba..656adfa82a5e9e3318196ccd53932eb49dd98b6b 100644 (file)
-#
-# Makefile
-#
+# 
+# Copyright (C) 2010-2011 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:=restund
-PKG_VERSION:=0.2.0
+PKG_VERSION:=0.3.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.creytiv.com/pub/
-PKG_MD5SUM:=b8fa2ab40d7952fd78c5d72ab1742232
+PKG_MD5SUM:=e82bdb994b26b8c16d799b3dc8dd0008
+
+restund-mods:= \
+       mysql \
+
+PKG_CONFIG_DEPENDS:= \
+       $(patsubst %,CONFIG_PACKAGE_restund-mod-%,$(restund-mods)) \
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/restund
+define Package/restund/Default
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+libre @BROKEN
-  TITLE:=libre stun server
+  SUBMENU:=Telephony
   URL:=http://www.creytiv.com/
 endef
 
-#PKG_MAKE_OPTS += USE_MYSQL=
+define Package/restund
+$(call Package/restund/Default)
+  TITLE:=Modular STUN/TURN server
+  DEPENDS:=+libre +libpthread
+endef
+
+
+restund-mod-mysql := USE_MYSQL
+
+RESTUND_MOD_OPTIONS:= \
+       $(foreach m,$(restund-mods),$(restund-mod-$(m))=$(if $(CONFIG_PACKAGE_restund-mod-$(m)),1))
 
 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_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
+               LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
+               LIBRE_SO="$(STAGING_DIR)/usr/lib" \
                CC="$(TARGET_CC)" \
-               CFLAGS="$(TARGET_CFLAGS)" \
+               EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
                DESTDIR="$(PKG_INSTALL_DIR)" \
-               $(PKG_MAKE_OPTS) \
                SYSROOT="$(TOOLCHAIN_DIR)" \
                SYSROOT_ALT="$(STAGING_DIR)/usr" \
                RELEASE=1 \
+               CROSS_COMPILE="$(TARGET_CROSS)" \
+               OS="linux" \
+               $(RESTUND_MOD_OPTIONS) \
                all install
 endef
 
 define Package/restund/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/restund $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/$(PKG_NAME)/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/modules/*.so $(1)/usr/lib/$(PKG_NAME)/modules/.
+       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/restund $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/restund/modules
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/auth.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/binding.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/stat.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/status.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/syslog.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/turn.so \
+               $(1)/usr/lib/restund/modules/
        $(INSTALL_DIR) $(1)/etc
        $(INSTALL_CONF) $(PKG_BUILD_DIR)/etc/restund.conf $(1)/etc/
+       $(SED) \
+               's|^\(module_path\)\([ \t]\+\).*$$$$|\1\2/usr/lib/restund/modules|g' \
+               $(1)/etc/restund.conf
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/restund.init $(1)/etc/init.d/restund
 endef
 
+
+#
+# 1. Name
+# 2. Title
+# 3. Files
+# 4. Depends
+#
+define BuildPlugin
+
+  define Package/restund-mod-$(1)
+    $$(call Package/restund/Default)
+    TITLE:= restund $(2) module
+    DEPENDS:= restund $(4)
+  endef
+
+  define Package/restund-mod-$(1)/install
+       [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/restund/modules
+       for f in $(3); do \
+               $(CP) \
+                       $(PKG_INSTALL_DIR)/usr/lib/restund/modules/$$$$$$$${f}.so \
+                       $$(1)/usr/lib/restund/modules/ ; \
+       done
+  endef
+
+  $$(eval $$(call BuildPackage,restund-mod-$(1)))
+endef
+
+
 $(eval $(call BuildPackage,restund))
+
+$(eval $(call BuildPlugin,mysql,MySQL database backend,mysql_ser,+PACKAGE_restund-mod-mysql:libmysqlclient))
index 85246b9f69f6532499cd997cd426475a94949d9a..2374a2795cb4d0e5f77d8d4a66bbce597349902f 100644 (file)
@@ -1,18 +1,17 @@
 #!/bin/sh /etc/rc.common
 #
+# Copyright (C) 2010-2011 OpenWrt.org
 # Copyright (C) 2010 Alfred E. Heggestad
 #
 
 START=60
 BIN=restund
-DEFAULT=/etc/default/$BIN
 OPTIONS=
 
 start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       $BIN $OPTIONS
+       start-stop-daemon -S -q -x $BIN -- $OPTIONS
 }
 
 stop() {
-       killall $BIN
+       start-stop-daemon -K -q -x $BIN
 }
diff --git a/net/restund/patches/101-cross.patch b/net/restund/patches/101-cross.patch
new file mode 100644 (file)
index 0000000..1934a13
--- /dev/null
@@ -0,0 +1,38 @@
+--- a/Makefile
++++ b/Makefile
+@@ -18,6 +18,7 @@ VERSION   := $(VER_MAJOR).$(VER_MINOR).$
+ MODULES         := binding auth turn stat status
+ MODULES         += $(EXTRA_MODULES)
++ifndef LIBRE_MK
+ LIBRE_MK  := $(shell [ -f ../re/mk/re.mk ] && \
+       echo "../re/mk/re.mk")
+ ifeq ($(LIBRE_MK),)
+@@ -28,19 +29,27 @@ ifeq ($(LIBRE_MK),)
+ LIBRE_MK  := $(shell [ -f /usr/local/share/re/re.mk ] && \
+       echo "/usr/local/share/re/re.mk")
+ endif
++endif
+ include $(LIBRE_MK)
+ # Optional syslog module
++ifndef USE_SYSLOG
+ ifneq ($(OS),win32)
++USE_SYSLOG := 1
++endif
++endif
++ifneq ($(USE_SYSLOG),)
+ MODULES   += syslog
+ endif
+ # Optional MySQL client module
++ifndef USE_MYSQL
+ USE_MYSQL := $(shell [ -f $(SYSROOT)/include/mysql/mysql.h ] || \
+               [ -f $(SYSROOT)/local/include/mysql/mysql.h ] || \
+               [ -f $(SYSROOT_ALT)/include/mysql/mysql.h ] || \
+               [ -f $(SYSROOT_ALT)/include/mysql5/mysql/mysql.h ] && echo "1")
++endif
+ ifneq ($(USE_MYSQL),)
+ MODULES += mysql_ser
+ endif