[packages] prosody: update to 0.6.2, add an init script, enable the posix module...
authorStephen Walker <stephendwalker@gmail.com>
Sun, 23 May 2010 03:00:30 +0000 (03:00 +0000)
committerStephen Walker <stephendwalker@gmail.com>
Sun, 23 May 2010 03:00:30 +0000 (03:00 +0000)
SVN-Revision: 21536

net/prosody/Makefile
net/prosody/files/prosody.init [new file with mode: 0644]
net/prosody/patches/001-conf.patch [new file with mode: 0644]

index 7f88340..69ac767 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2009 OpenWrt.org
+# Copyright (C) 2009-2010 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,21 +8,24 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prosody
-PKG_VERSION:=0.5.2
+PKG_VERSION:=0.6.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://prosody.im/downloads/source/
-PKG_MD5SUM:=bcc7828c041e53b2c909822b1acdf600
+PKG_SOURCE_URL:=http://prosody.im/downloads/source
+PKG_MD5SUM:=5da59bc906419ad3b4faa21516a6ca18
+
+PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
 define Package/prosody
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+liblua +libidn +libopenssl +luasocket +luaexpat +luasec
+  SUBMENU:=Instant Messaging
+  DEPENDS:=+luafilesystem +libidn +luaexpat +luasec
   TITLE:=XMPP server
-  URL:=http://prosody.im
+  URL:=http://prosody.im/
 endef
 
 define Package/prosody/description
@@ -45,24 +48,23 @@ define Build/Configure
                --with-lua-include="$(STAGING_DIR)/usr/include" \
                --with-lua-lib="$(STAGING_DIR)/usr/lib" \
                --cflags="$(TARGET_CFLAGS)" \
+               --datadir="/etc/prosody/data" \
        )
 endef
 
-define Build/Compile
-       $(call Build/Compile/Default,\
-               CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) -std=gnu99" \
-               LDFLAGS="$(TARGET_LDFLAGS)" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               PREFIX="/usr" \
-               all install \
-       )
-endef
+MAKE_FLAGS += \
+       CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) -std=gnu99" \
+       LDFLAGS="$(TARGET_LDFLAGS)" \
+       PREFIX="/usr" \
 
 define Package/prosody/install
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/prosody.init $(1)/etc/init.d/prosody
        $(INSTALL_DIR) $(1)/etc/prosody
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/prosody/prosody.cfg.lua $(1)/etc/prosody/
        $(INSTALL_DIR) $(1)/etc/prosody/certs
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/prosody/certs/localhost.{cert,key} $(1)/etc/prosody/certs/
+       $(INSTALL_DIR) $(1)/etc/prosody/data
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/prosody{,ctl} $(1)/usr/bin/
        $(INSTALL_DIR) $(1)/usr/lib/prosody
@@ -73,10 +75,51 @@ define Package/prosody/install
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/fallbacks/*.lua $(1)/usr/lib/prosody/fallbacks/
        $(INSTALL_DIR) $(1)/usr/lib/prosody/modules
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/modules/*.lua $(1)/usr/lib/prosody/modules/
+       $(INSTALL_DIR) $(1)/usr/lib/prosody/modules/muc
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/modules/muc/*.lua $(1)/usr/lib/prosody/modules/muc/
        $(INSTALL_DIR) $(1)/usr/lib/prosody/net
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/net/*.lua $(1)/usr/lib/prosody/net/
        $(INSTALL_DIR) $(1)/usr/lib/prosody/util
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/util/*.{lua,so} $(1)/usr/lib/prosody/util/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/util/*.lua $(1)/usr/lib/prosody/util/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/prosody/util/*.so $(1)/usr/lib/prosody/util/
+endef
+
+define Package/prosody/postinst
+#!/bin/sh
+
+id=54
+name=prosody
+home=/tmp/.$${name}
+shell=/bin/false
+
+# do not change below
+# check if we are on real system
+if [ -z "$${IPKG_INSTROOT}" ]; then
+        # create copies of passwd and group, if we use squashfs
+        rootfs=`mount |awk '/root/ { print $$5 }'`
+        if [ "$$rootfs" = "squashfs" ]; then
+                if [ -h /etc/group ]; then
+                        rm /etc/group
+                        cp -p /rom/etc/group /etc/group
+                fi
+                if [ -h /etc/passwd ]; then
+                        rm /etc/passwd
+                        cp -p /rom/etc/passwd /etc/passwd
+                fi
+        fi
+fi
+
+echo ""
+if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/group)" ]; then
+        echo "adding group $$name to /etc/group"
+        echo "$${name}:x:$${id}:" >> $${IPKG_INSTROOT}/etc/group
+fi
+if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/passwd)" ]; then
+        echo "adding user $$name to /etc/passwd"
+        echo "$${name}:x:$${id}:$${id}:$${name}:$${home}:$${shell}" >> $${IPKG_INSTROOT}/etc/passwd
+fi
+
+chown -R $${name}:$${name} $${IPKG_INSTROOT}/etc/prosody
 endef
 
 $(eval $(call BuildPackage,prosody))
diff --git a/net/prosody/files/prosody.init b/net/prosody/files/prosody.init
new file mode 100644 (file)
index 0000000..90051c5
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010 OpenWrt.org
+
+START=99
+EXTRA_COMMANDS="status"
+EXTRA_HELP="   status  Print the status of the service"
+
+BIN=/usr/bin/prosodyctl
+LOG_D=/var/log/prosody
+RUN_D=/var/run/prosody
+PID_F=$RUN_D/prosody.pid
+RUN_USER=prosody
+RUN_GROUP=prosody
+
+start() {
+       [ -d $LOG_D ] || ( mkdir -p $LOG_D && chown $RUN_USER:$RUN_GROUP $LOG_D )
+       [ -d $RUN_D ] || ( mkdir -p $RUN_D && chown $RUN_USER:$RUN_GROUP $RUN_D )
+
+       $BIN start
+}
+
+stop() {
+       $BIN stop
+}
+
+reload() {
+       [ -f $PID_F ] && kill -HUP $(cat $PID_F)
+}
+
+status() {
+       $BIN status
+}
diff --git a/net/prosody/patches/001-conf.patch b/net/prosody/patches/001-conf.patch
new file mode 100644 (file)
index 0000000..4b23f9a
--- /dev/null
@@ -0,0 +1,37 @@
+--- a/prosody.cfg.lua.dist
++++ b/prosody.cfg.lua.dist
+@@ -47,7 +47,7 @@ modules_enabled = {
+               "register"; -- Allow users to register on this server using a client and change passwords
+       
+       -- Other specific functionality
+-              --"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
++              "posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
+               --"console"; -- Opens admin telnet interface on localhost port 5582
+               --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
+               --"httpserver"; -- Serve static files from a directory over HTTP
+@@ -65,6 +65,9 @@ modules_disabled = {
+ -- Disable account creation by default, for security
+ -- For more information see http://prosody.im/doc/creating_accounts
+ allow_registration = false;
++
++-- File to write pid in
++pidfile = "/var/run/prosody/prosody.pid";
+       
+ -- These are the SSL/TLS-related settings. If you don't want
+ -- to use SSL/TLS, you may comment or remove this
+@@ -73,6 +76,15 @@ ssl = {
+       certificate = "certs/localhost.cert";
+ }
++-- Errors to syslog
++-- All to /var/log/prosody/
++log = {
++      { levels = { "error" }; to = "syslog";  };
++      { levels = { "error" }; to = "file"; filename = "/var/log/prosody/prosody.err";  };
++      -- Change "info" to "debug" for more verbose logging
++      { levels = { min = "info" }; to = "file"; filename = "/var/log/prosody/prosody.log";  };
++}
++
+ ----------- Virtual hosts -----------
+ -- You need to add a VirtualHost entry for each domain you wish Prosody to serve.
+ -- Settings under each VirtualHost entry apply *only* to that host.