From ad6b526e19315d4ea75c71ed625605e669c09f92 Mon Sep 17 00:00:00 2001 From: Stephen Walker Date: Sun, 23 May 2010 03:00:30 +0000 Subject: [PATCH] [packages] prosody: update to 0.6.2, add an init script, enable the posix module and logging, use PKG_INSTALL SVN-Revision: 21536 --- net/prosody/Makefile | 75 +++++++++++++++++++++++------- net/prosody/files/prosody.init | 32 +++++++++++++ net/prosody/patches/001-conf.patch | 37 +++++++++++++++ 3 files changed, 128 insertions(+), 16 deletions(-) create mode 100644 net/prosody/files/prosody.init create mode 100644 net/prosody/patches/001-conf.patch diff --git a/net/prosody/Makefile b/net/prosody/Makefile index 7f88340333..69ac767e8f 100644 --- a/net/prosody/Makefile +++ b/net/prosody/Makefile @@ -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 index 0000000000..90051c5f4e --- /dev/null +++ b/net/prosody/files/prosody.init @@ -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 index 0000000000..4b23f9a164 --- /dev/null +++ b/net/prosody/patches/001-conf.patch @@ -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. -- 2.30.2