Subject: [alpine-devel] unstable/prosody: Work in progress

From: "Mika Havela" <[email-masked]>
Date: Thu, 04 Jun 2009 16:09:31 +0000

init.d script is not working but other than that it should be ready to go.

From 4cc70829b48d5b9fa97759ee68b50ca58068ebda Mon Sep 17 00:00:00 2001
From: Mika Havela <[email-masked]>
Date: Thu, 4 Jun 2009 16:06:43 +0000
Subject: [PATCH] unstable/prosody: prosody - still work in progress
 It should run if you start it manually, but init.d script still doesn't work.
 Might be we have som error in prosody.cfg.lua that causes this trouble
 Need to set permissions on /var/run/prosody so pidfile can be written

---
 unstable/prosody/APKBUILD             |   39 +++++++++---
 unstable/prosody/Makefile-0.4.2.patch |   13 ++++
 unstable/prosody/prosody.cfg.lua      |  107 +++++++++++++++++++++++++++++++++
 unstable/prosody/prosody.initd        |   43 +++++++++++++
 unstable/prosody/prosody.post-install |    6 ++
 unstable/prosody/prosody.pre-install  |    9 +++
 6 files changed, 208 insertions(+), 9 deletions(-)
 create mode 100644 unstable/prosody/Makefile-0.4.2.patch
 create mode 100644 unstable/prosody/prosody.cfg.lua
 create mode 100644 unstable/prosody/prosody.initd
 create mode 100644 unstable/prosody/prosody.post-install
 create mode 100644 unstable/prosody/prosody.pre-install

diff --git a/unstable/prosody/APKBUILD b/unstable/prosody/APKBUILD
index 4cf10b2..61566d3 100644
--- a/unstable/prosody/APKBUILD
+++ b/unstable/prosody/APKBUILD
@@ -1,28 +1,49 @@
 # Contributor: Michael Mason <[email-masked]>
+# Contributor: Mika Havela <[email-masked]>
+# Maintainer: Mika Havela <[email-masked]>
 pkgname=prosody
 pkgver=0.4.2
 pkgrel=0
 pkgdesc="Lua based Jabber/XMPP server"
 url="http://prosody.im/"
-license="GPL"
-depends="uclibc lua libidn openssl"
-makedepends="lua-dev libidn-dev lua-dev openssl-dev"
-install=
+license="MIT"
+depends="uclibc lua libidn openssl luasocket luaexpat"
+makedepends="lua-dev libidn-dev openssl-dev"
+install="prosody.pre-install prosody.post-install"
 subpackages=""
-source="http://prosody.im/downloads/source/$pkgname-$pkgver.tar.gz"
+source="http://prosody.im/downloads/source/$pkgname-$pkgver.tar.gz
+	$pkgname.cfg.lua
+	$pkgname.initd
+	$install
+	Makefile-0.4.2.patch
+	"
 
 build() {
 	cd "$srcdir/$pkgname-$pkgver"
 
-	PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
-	
+	patch Makefile "$startdir/Makefile-0.4.2.patch" || return 1
+
 	./configure --prefix=/usr \
-		--sysconfdir=/etc
+		--sysconfdir=/etc/prosody \
+		--with-lua=/usr/bin \
+		--with-lua-lib=/usr/lib \
+		--with-lua-include=/usr/include
+	
 	make || return 1
 	make DESTDIR="$pkgdir" install
 
+	install -d "$pkgdir/var/log/prosody" || return 1
+	install -d "$pkgdir/var/run/prosody" || return 1
+	install -D -m755 "$srcdir"/"$pkgname".initd "$pkgdir"/etc/init.d/"$pkgname"
+
+	install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
 	# install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
 	# install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
 }
 
-md5sums="2669478311b3a67522669acdf03cf85c  prosody-0.4.2.tar.gz"
+md5sums="2669478311b3a67522669acdf03cf85c  prosody-0.4.2.tar.gz
+f42039e5a342fe62cd7e491546338aaa  prosody.cfg.lua
+b270dcd3b853e1d019aa04426fdf1800  prosody.initd
+08484f183ba39233337d3fbc92cffadc  prosody.pre-install
+8202a40bf6de7cbacbaf76f2985aa220  prosody.post-install
+684d033dac42399a245c061c9a374e1b  Makefile-0.4.2.patch"
diff --git a/unstable/prosody/Makefile-0.4.2.patch b/unstable/prosody/Makefile-0.4.2.patch
new file mode 100644
index 0000000..facfa2f
--- /dev/null
+++ b/unstable/prosody/Makefile-0.4.2.patch
@@ -0,0 +1,13 @@
+--- src/prosody-0.4.2/Makefile.org	Thu Jun  4 13:44:20 2009
++++ src/prosody-0.4.2/Makefile	Thu Jun  4 13:44:11 2009
+@@ -19,8 +19,8 @@
+ 	install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE) $(DATA)
+ 	install -d $(CONFIG)/certs
+ 	install -d $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
+-	install ./prosody.install $(BIN)/prosody
+-	install ./prosodyctl.install $(BIN)/prosodyctl
++	install -m755 ./prosody.install $(BIN)/prosody
++	install -m755 ./prosodyctl.install $(BIN)/prosodyctl
+ 	install -m644 core/* $(SOURCE)/core
+ 	install -m644 net/* $(SOURCE)/net
+ 	install -m644 util/* $(SOURCE)/util
diff --git a/unstable/prosody/prosody.cfg.lua b/unstable/prosody/prosody.cfg.lua
new file mode 100644
index 0000000..99df66a
--- /dev/null
+++ b/unstable/prosody/prosody.cfg.lua
@@ -0,0 +1,107 @@
+-- Prosody Configuration File
+--
+-- If it wasn't already obvious, -- starts a comment, and all text after it on
+-- a line is ignored by Prosody.
+--
+-- The config is split into sections, a global section, and one for each
+-- defined host that we serve. You can add as many host sections as you like.
+--
+-- Lists are written { "like", "this", "one" }
+-- Lists can also be of { 1, 2, 3 } numbers, etc.
+-- Either commas, or semi-colons; may be used as seperators.
+--
+-- A table is a list of values, except each value has a name. An example would
+-- be:
+--
+-- logging = { type = "html", directory = "/var/logs", rotate = "daily" }
+--
+-- Whitespace (that is tabs, spaces, line breaks) is mostly insignificant, so
+-- can
+-- be placed anywhere
+-- that     you deem fitting.
+--
+-- Tip: You can check that the syntax of this file is correct when you have
+-- finished by running: luac -p prosody.cfg.lua
+-- If there are any errors, it will let you know what and where they are,
+-- otherwise it will keep quiet.
+--
+-- Good luck, and happy Jabbering!
+
+-- Global settings go in this section
+Host "*"
+    -- This is the list of modules Prosody will load on startup.
+    -- It looks for mod_modulename.lua in the plugins folder, so make sure that
+    -- exists too.
+    modules_enabled = {
+        -- Generally required
+            "roster"; -- Allow users to have a roster. Recommended ;)
+            "saslauth"; -- Authentication for clients and servers. Recommended
+                        -- if you want to log in.
+            "tls"; -- Add support for secure TLS on c2s/s2s connections
+            "dialback"; -- s2s dialback support
+            "disco"; -- Service discovery
+
+        -- Not essential, but recommended
+            "private"; -- Private XML storage (for room bookmarks, etc.)
+            "vcard"; -- Allow users to set vCards
+
+        -- Nice to have
+            "legacyauth"; -- Legacy authentication. Only used by some old
+                          -- clients and bots.
+            "version"; -- Replies to server version requests
+            "uptime"; -- Report how long server has been running
+            "time"; -- Let others know the time here on this server
+            "ping"; -- Replies to XMPP pings with pongs
+
+        -- Required for daemonizing and logging
+            "posix"; -- POSIX functionality, sends server to background,
+                     -- enables syslog, etc.
+
+        -- Other specific functionality
+            "register"; -- Allow users to register on this server using a
+                          -- client
+            --"console"; -- telnet to port 5582 (needs console_enabled = true)
+            --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
+            --"httpserver"; -- Serve static files from a directory over HTTP
+    }
+
+    -- These are the SSL/TLS-related settings. If you don't want to use
+    -- SSL/TLS, you may comment or remove this
+    --ssl = {
+    --    key = "/etc/prosody/certs/localhost.key";
+    --    certificate = "/etc/prosody/certs/localhost.cert";
+    --}
+
+    log = {
+        -- Log all error messages to prosody.err
+        { levels = { min = "error" }, to = "file", timestamps = true,
+        filename = "/var/log/prosody/prosody.err" };
+        -- Log everything of level "info" and higher (that is, all except
+        -- "debug" messages) to prosody.log
+        { levels = { min = "info" }, to = "file", timestamps = true,
+        filename = "/var/log/prosody/prosody.log" };
+    }
+
+    -- Required for proper daemonization support
+    pidfile = "/var/run/prosody/prosody.pid"
+
+-- This allows clients to connect to localhost. No harm in it.
+Host "localhost"
+
+-- Section for example.com
+-- (replace example.com with your domain name)
+Host "example.com"
+    -- Assign this host a certificate for TLS, otherwise it would use the one
+    -- set in the global section (if any).
+    -- Note that old-style SSL on port 5223 only supports one certificate, and
+    -- will always use the global one.
+    --ssl = {
+    --    key = "/etc/prosody/certs/example.com.key";
+    --    certificate = "/etc/prosody/certs/example.com.crt";
+    --}
+
+    enabled = false -- This will disable the host, preserving the config, but
+                    -- denying connections
+
+-- Set up a MUC (multi-user chat) room server on conference.localhost:
+Component "conference.localhost" "muc"
diff --git a/unstable/prosody/prosody.initd b/unstable/prosody/prosody.initd
new file mode 100644
index 0000000..1c88672
--- /dev/null
+++ b/unstable/prosody/prosody.initd
@@ -0,0 +1,43 @@
+#!/sbin/runscript
+
+# Sample init.d file for alpine linux.
+
+NAME=prosody
+DAEMON=/usr/bin/$NAME
+
+depend() {
+	need net
+}
+
+start() {
+	ebegin "Starting ${NAME}"
+		/usr/bin/prosodyctl start
+#		start-stop-daemon --start --quiet --background \
+#			--make-pidfile --pidfile /var/run/${NAME}/${NAME}.pid \
+#			--chuid ${USER}:${GROUP} \
+#			--exec ${DAEMON} -- ${OPTS}
+	eend $?
+}
+
+stop() {
+	ebegin "Stopping ${NAME}"
+		/usr/bin/prosodyctl stop
+#		start-stop-daemon --stop --quiet \
+#			--exec ${DAEMON} \
+#			--pidfile /var/run/${NAME}/${NAME}.pid \
+	eend $?
+}
+
+reload() {
+	ebegin "Reloading ${NAME}"
+	if ! service_started "${NAME}" ; then
+		eend 1 "${NAME} is not started"
+		return 1
+	fi
+	/usr/bin/prosodyctl stop
+	/usr/bin/prosodyctl start
+#	start-stop-daemon --stop --oknodo --signal HUP \
+#		--exec ${DAEMON} --pidfile /var/run/${NAME}/${NAME}.pid
+	eend $?
+}
+
diff --git a/unstable/prosody/prosody.post-install b/unstable/prosody/prosody.post-install
new file mode 100644
index 0000000..2f8f69c
--- /dev/null
+++ b/unstable/prosody/prosody.post-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+chown prosody:prosody var/lib/prosody
+chown prosody:prosody var/log/prosody
+chown prosody:prosody var/run/prosody
+
diff --git a/unstable/prosody/prosody.pre-install b/unstable/prosody/prosody.pre-install
new file mode 100644
index 0000000..db63efa
--- /dev/null
+++ b/unstable/prosody/prosody.pre-install
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+user=prosody
+home=/var/lib/prosody
+adduser -h $home -s /bin/false -D $user 2>/dev/null
+mkdir -p $home
+chown $user:$user $home
+exit 0
+
-- 
1.6.2.5

---

From: Michael Mason <[email-masked]>
Date: Thu, 4 Jun 2009 19:55:06 +0000

> init.d script is not working but other than that it should be ready  

I have patched prosody and added the files.
Also moved luaexpat and luasocket to testing.

Thx

> <0001-unstable-prosody-prosody-still-work-in-progress.patch>

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---