misc/136267: New port: net-im/prosody Simple and extensible Lua XMPP server

Andrew Lewis dru at silenceisdefeat.net
Fri Jul 3 04:50:04 UTC 2009


>Number:         136267
>Category:       misc
>Synopsis:       New port: net-im/prosody Simple and extensible Lua XMPP server
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 03 04:50:03 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Lewis
>Release:        7.1-RELEASE-p6
>Organization:
Private
>Environment:
FreeBSD foo.bar 7.1-RELEASE-p6 FreeBSD 7.1-RELEASE-p6 #4: Wed Jun 24 14:25:56 UTC 2009     toor at foo.bar:/usr/obj/usr/src/sys/ADAMANTIUM71  i386
>Description:
Depends on:
http://www.freebsd.org/cgi/query-pr.cgi?pr=136264
http://www.freebsd.org/cgi/query-pr.cgi?pr=136265
http://www.freebsd.org/cgi/query-pr.cgi?pr=136266
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	.
#	./Makefile
#	./distinfo
#	./files
#	./files/patch-configure
#	./files/prosody.cfg.lua.install.in
#	./files/prosody.in
#	./files/pkg-install.in
#	./files/pkg-deinstall.in
#	./pkg-plist
#	./pkg-descr
#
echo c - .
mkdir -p . > /dev/null 2>&1
echo x - ./Makefile
sed 's/^X//' >./Makefile << '464ef7c6571951809b23e262cbe26e19'
X# New ports collection makefile for:    prosody
X# Date created:				25 June 2009
X# Whom:					Andrew Lewis <dru at silenceisdefeat.net>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	prosody
XPORTVERSION=	0.4.2
XCATEGORIES=	net-im
XMASTER_SITES=	http://prosody.im/downloads/source/
X
XMAINTAINER=	dru at silenceisdefeat.net
XCOMMENT=	A simple extensible XMPP server written in Lua
X
XUSE_RC_SUBR=	prosody
XUSE_LUA=	5.1
XWANT_LUA_VER=	5.1
XCONFIGURE_ARGS+="--ostype=freebsd"
XCONFIGURE_ENV+= LOCALBASE="${LOCALBASE}" LUA_SUFFIX="-${LUA_VER}" LUA_LIBDIR="${LUA_LIBDIR}" LUA_INCDIR="${LUA_INCDIR}"
XHAS_CONFIGURE=	yes
XSUB_FILES=	pkg-install pkg-deinstall prosody.cfg.lua.install
X
XRUN_DEPENDS+=   ${LUA_MODLIBDIR}/socket/core.so:${PORTSDIR}/net/luasocket
XRUN_DEPENDS+=	${LUA_MODLIBDIR}/ssl.so:${PORTSDIR}/security/luasec
XRUN_DEPENDS+=   ${LUA_MODLIBDIR}/lxp.so:${PORTSDIR}/textproc/luaexpat
XBUILD_DEPENDS+=	${LOCALBASE}/include/stringprep.h:${PORTSDIR}/dns/libidn
X
Xpre-install:
X	${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
X	${MV} ${WRKDIR}/prosody.cfg.lua.install ${WRKSRC}/prosody.cfg.lua.install
X	${REINPLACE_CMD} -e 's|/usr/bin/env lua|${LUA_CMD}|' ${WRKSRC}/prosody ${WRKSRC}/prosodyctl
X
Xpost-install:
X	${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
X
X.include <bsd.port.mk>
464ef7c6571951809b23e262cbe26e19
echo x - ./distinfo
sed 's/^X//' >./distinfo << 'aec8793adfd5b7c3f00e62ae41a09ac2'
XMD5 (prosody-0.4.2.tar.gz) = 2669478311b3a67522669acdf03cf85c
XSHA256 (prosody-0.4.2.tar.gz) = 4ba7a58832a15cc942dbc1dfcdfbc0157a8dfae3b940ee5a6743e7870433803f
XSIZE (prosody-0.4.2.tar.gz) = 114291
aec8793adfd5b7c3f00e62ae41a09ac2
echo c - ./files
mkdir -p ./files > /dev/null 2>&1
echo x - ./files/patch-configure
sed 's/^X//' >./files/patch-configure << 'c4a64a21f682b9904407688225777d43'
X--- orig.configure	2009-06-12 14:35:23.000000000 +0000
X+++ configure	2009-06-25 19:03:24.000000000 +0000
X@@ -5,11 +5,11 @@
X PREFIX=/usr/local
X SYSCONFDIR="$PREFIX/etc/prosody"
X DATADIR="$PREFIX/var/lib/prosody"
X-LUA_SUFFIX=""
X+#LUA_SUFFIX=""
X LUA_DIR="/usr"
X LUA_BINDIR="/usr/bin"
X-LUA_INCDIR="/usr/include"
X-LUA_LIBDIR="/usr/lib"
X+#LUA_INCDIR="/usr/include"
X+#LUA_LIBDIR="/usr/lib"
X IDN_LIB=idn
X OPENSSL_LIB=crypto
X CC=gcc
X@@ -26,7 +26,7 @@
X 
X --help                      This help.
X --ostype=OS                 Use one of the OS presets.
X-                            May be one of: debian, macosx
X+                            May be one of: debian, macosx, freebsd
X --prefix=DIR                Prefix where Prosody should be installed.
X                             Default is $PREFIX
X --sysconfdir=DIR            Location where the config file should be installed.
X@@ -150,6 +150,15 @@
X 	CFLAGS="-Wall"
X 	LFLAGS="-bundle -undefined dynamic_lookup"
X 	fi	
X+	if [ "$OSTYPE" = "freebsd" ]
X+	then 
X+	LUA_INCDIR_SET=yes
X+	LUA_LIBDIR_SET=yes
X+	CFLAGS="-D_POSIX_SOURCE -I${LOCALBASE}/include"
X+	LFLAGS="-lm -shared -L${LOCALBASE}/lib"
X+	LUA_SUFFIX_SET=yes
X+	LUA_LIB=lua
X+	fi
X fi
X 
X if [ "$PREFIX_SET" = "yes" -a ! "$SYSCONFDIR_SET" = "yes" ]
c4a64a21f682b9904407688225777d43
echo x - ./files/prosody.cfg.lua.install.in
sed 's/^X//' >./files/prosody.cfg.lua.install.in << 'f06b51da86f87a20f0af7bf50c92b098'
X-- Prosody Example Configuration File 
X-- 
X-- If it wasn't already obvious, -- starts a comment, and all 
X-- text after it on a line is ignored by Prosody.
X--
X-- The config is split into sections, a global section, and one 
X-- for each defined host that we serve. You can add as many host 
X-- sections as you like.
X--
X-- Lists are written { "like", "this", "one" } 
X-- Lists can also be of { 1, 2, 3 } numbers, etc. 
X-- Either commas, or semi-colons; may be used
X-- as seperators.
X--
X-- A table is a list of values, except each value has a name. An 
X-- example would be:
X--
X-- logging = { type = "html", directory = "/var/logs", rotate = "daily" }
X--
X-- Whitespace (that is tabs, spaces, line breaks) is mostly insignificant, so 
X-- can 
X-- be placed anywhere
X-- that 	you deem fitting.
X--
X-- Tip: You can check that the syntax of this file is correct when you have finished
X-- by running: luac -p prosody.cfg.lua
X-- If there are any errors, it will let you know what and where they are, otherwise it 
X-- will keep quiet.
X--
X-- The only thing left to do is rename this file to remove the .dist ending, and fill in the 
X-- blanks. Good luck, and happy Jabbering!
X
X-- Global settings go in this section
XHost "*"
X	prosody_user = "prosody"
X        pidfile = "%%PREFIX%%/var/lib/prosody/prosody.pid"	
X	-- This is the list of modules Prosody will load on startup.
X	-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.
X	modules_enabled = {
X			-- Generally required
X				"roster"; -- Allow users to have a roster. Recommended ;)
X				"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
X				--"tls"; -- Add support for secure TLS on c2s/s2s connections
X				"dialback"; -- s2s dialback support
X			  	"disco"; -- Service discovery
X			
X			-- Not essential, but recommended
X				"private"; -- Private XML storage (for room bookmarks, etc.)
X				"vcard"; -- Allow users to set vCards
X			
X			-- Nice to have
X				"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
X				"version"; -- Replies to server version requests
X			  	"uptime"; -- Report how long server has been running
X			  	"time"; -- Let others know the time here on this server
X			  	"ping"; -- Replies to XMPP pings with pongs
X
X			-- Other specific functionality
X				--"register"; -- Allow users to register on this server using a client
X				"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
X			  	--"console"; -- telnet to port 5582 (needs console_enabled = true)
X				--"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
X				--"httpserver"; -- Serve static files from a directory over HTTP
X			  };
X	
X	-- These are the SSL/TLS-related settings. If you don't want
X	-- to use SSL/TLS, you may comment or remove this
X--	ssl = { 
X--		key = "certs/localhost.key";
X--		certificate = "certs/localhost.cert";
X--		}
X
X-- This allows clients to connect to localhost. No harm in it.
XHost "localhost"
X
X-- Section for example.com
X-- (replace example.com with your domain name)
X--Host "example.com"
X--	-- Assign this host a certificate for TLS, otherwise it would use the one
X--	-- set in the global section (if any).
X--	-- Note that old-style SSL on port 5223 only supports one certificate, and will always
X--	-- use the global one.
X--	ssl = { 
X--		key = "certs/example.com.key";
X--		certificate = "certs/example.com.crt";
X--		}
X--
X--	enabled = false -- This will disable the host, preserving the config, but denying connections
X
X-- Set up a MUC (multi-user chat) room server on conference.example.com:
X--Component "conference.example.com" "muc"
f06b51da86f87a20f0af7bf50c92b098
echo x - ./files/prosody.in
sed 's/^X//' >./files/prosody.in << 'eaad4589d80a97ee22a05bdfd018a265'
X#!/bin/sh
X
X# PROVIDE: prosody
X#
X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
X# to enable this service:
X#
X# prosody_enable (bool):   Set to NO by default.
X#                Set it to YES to enable Prosody
X#
X
X. %%RC_SUBR%%
X
Xname="prosody"
Xrcvar=`set_rcvar`
Xpidfile="%%PREFIX%%/var/lib/prosody/prosody.pid"
Xcommand="%%PREFIX%%/bin/prosodyctl"
X
Xload_rc_config $name
X
Xprosody=${prosody_enable-"NO"}
Xcommand_args="$1"
X
Xstop_cmd=prosody_stop_cmd
Xstatus_cmd=prosody_status_cmd
Xrestart_cmd=prosody_restart_cmd
X
Xprosody_restart_cmd()
X{
X	%%PREFIX%%/bin/prosodyctl stop
X	%%PREFIX%%/bin/prosodyctl start
X}
X
Xprosody_status_cmd()
X{
X	%%PREFIX%%/bin/prosodyctl status
X}
X
Xprosody_stop_cmd()
X{
X	%%PREFIX%%/bin/prosodyctl stop
X}
X
Xrun_rc_command "$1"
eaad4589d80a97ee22a05bdfd018a265
echo x - ./files/pkg-install.in
sed 's/^X//' >./files/pkg-install.in << '54ebdf45d5c878152b906d4f588a7e61'
X#!/bin/sh
X#
X# $FreeBSD$
X#
X
XPW=/usr/sbin/pw
XUID=1789
XGID=$UID
XUSER="prosody"
XGROUP="prosody"
XPREFIX="%%PREFIX%%"
X
Xcase $2 in
X
XPRE-INSTALL)
X
X	if ${PW} group show "${GROUP}" 2>/dev/null; then
X		echo "You already have a group \"${GROUP}\", so I will use it."
X	else
X		if ${PW} groupadd ${GROUP} -g ${GID}; then
X			echo "Added group \"${GROUP}\"."
X		else
X			echo "Adding group \"${GROUP}\" failed..."
X			exit 1
X		fi
X	fi
X
X	if ${PW} user show "${USER}" 2>/dev/null; then
X		echo "You already have a user \"${USER}\", so I will use it."
X	else
X		if ${PW} useradd ${USER} -u ${UID} -g daemon -h - \
X			-d "/nonexistent" -s /usr/sbin/nologin -c "Prosody XMPP Server"
X		then
X			echo "Added user \"${USER}\"."
X		else
X			echo "Adding user \"${USER}\" failed..."
X			exit 1
X		fi
X	fi
X	;;
X
XPOST-INSTALL)
X	chown "${USER}" $PREFIX/var/lib/prosody
X	;;
X*)
X	echo "?"
X;;
Xesac
Xexit 0
54ebdf45d5c878152b906d4f588a7e61
echo x - ./files/pkg-deinstall.in
sed 's/^X//' >./files/pkg-deinstall.in << '545036d76ae9b0ad9cb7c80585eb12a3'
X#!/bin/sh
X#
X# $FreeBSD$
X#
X
Xcase $2 in
XPOST-DEINSTALL)
X	echo "===> post-deinstallation information for $1:"
X	echo ""
X	echo "     Note:"
X	echo "     Prosody related user accounts and groups were not removed."
X	echo ""
X	echo "     To remove the 'prosody' user and the 'prosody' group which were"
X	echo "     created by a default installation of this package, run"
X	echo ""
X	echo "     pw userdel -n prosody"
X	;;
X*)
X	;;
Xesac
Xexit 0
545036d76ae9b0ad9cb7c80585eb12a3
echo x - ./pkg-plist
sed 's/^X//' >./pkg-plist << 'ef3e7f63841ae908ba397c2bef1fbad6'
Xbin/prosody
Xbin/prosodyctl
Xlib/prosody/core/actions.lua
Xlib/prosody/core/componentmanager.lua
Xlib/prosody/core/configmanager.lua
Xlib/prosody/core/discomanager.lua
Xlib/prosody/core/eventmanager.lua
Xlib/prosody/core/hostmanager.lua
Xlib/prosody/core/loggingmanager.lua
Xlib/prosody/core/modulemanager.lua
Xlib/prosody/core/objectmanager.lua
Xlib/prosody/core/offlinemanager.lua
Xlib/prosody/core/presencemanager.lua
Xlib/prosody/core/rostermanager.lua
Xlib/prosody/core/s2smanager.lua
Xlib/prosody/core/sessionmanager.lua
Xlib/prosody/core/stanza_router.lua
Xlib/prosody/core/usermanager.lua
Xlib/prosody/core/xmlhandlers.lua
Xlib/prosody/modules/mod_actions_http.lua
Xlib/prosody/modules/mod_bosh.lua
Xlib/prosody/modules/mod_component.lua
Xlib/prosody/modules/mod_console.lua
Xlib/prosody/modules/mod_debug.lua
Xlib/prosody/modules/mod_dialback.lua
Xlib/prosody/modules/mod_disco.lua
Xlib/prosody/modules/mod_httpserver.lua
Xlib/prosody/modules/mod_legacyauth.lua
Xlib/prosody/modules/mod_muc.lua
Xlib/prosody/modules/mod_ping.lua
Xlib/prosody/modules/mod_posix.lua
Xlib/prosody/modules/mod_private.lua
Xlib/prosody/modules/mod_register.lua
Xlib/prosody/modules/mod_roster.lua
Xlib/prosody/modules/mod_saslauth.lua
Xlib/prosody/modules/mod_selftests.lua
Xlib/prosody/modules/mod_time.lua
Xlib/prosody/modules/mod_tls.lua
Xlib/prosody/modules/mod_uptime.lua
Xlib/prosody/modules/mod_vcard.lua
Xlib/prosody/modules/mod_version.lua
Xlib/prosody/modules/mod_xmlrpc.lua
Xlib/prosody/net/adns.lua
Xlib/prosody/net/connlisteners.lua
Xlib/prosody/net/dns.lua
Xlib/prosody/net/http.lua
Xlib/prosody/net/httpclient_listener.lua
Xlib/prosody/net/httpserver.lua
Xlib/prosody/net/httpserver_listener.lua
Xlib/prosody/net/server.lua
Xlib/prosody/net/xmppclient_listener.lua
Xlib/prosody/net/xmppcomponent_listener.lua
Xlib/prosody/net/xmppserver_listener.lua
Xlib/prosody/util/array.lua
Xlib/prosody/util/dataforms.lua
Xlib/prosody/util/datamanager.lua
Xlib/prosody/util/datetime.lua
Xlib/prosody/util/dependencies.lua
Xlib/prosody/util/discohelper.lua
Xlib/prosody/util/encodings.so
Xlib/prosody/util/events.lua
Xlib/prosody/util/hashes.so
Xlib/prosody/util/import.lua
Xlib/prosody/util/iterators.lua
Xlib/prosody/util/jid.lua
Xlib/prosody/util/logger.lua
Xlib/prosody/util/multitable.lua
Xlib/prosody/util/pposix.so
Xlib/prosody/util/prosodyctl.lua
Xlib/prosody/util/pubsub.lua
Xlib/prosody/util/sasl.lua
Xlib/prosody/util/serialization.lua
Xlib/prosody/util/set.lua
Xlib/prosody/util/signal.so
Xlib/prosody/util/stanza.lua
Xlib/prosody/util/termcolours.lua
Xlib/prosody/util/timer.lua
Xlib/prosody/util/uuid.lua
Xlib/prosody/util/xmlrpc.lua
Xlib/prosody/util/ztact.lua
X at dirrm lib/prosody/util
X at dirrm lib/prosody/net
X at dirrm lib/prosody/modules
X at dirrm lib/prosody/core
X at dirrm lib/prosody
ef3e7f63841ae908ba397c2bef1fbad6
echo x - ./pkg-descr
sed 's/^X//' >./pkg-descr << '0e313719ff012ceaf97a028d51caa8f5'
XProsody is a flexible communications server for Jabber/XMPP written in Lua. It
Xaims to be easy to use, and light on resources. For developers it aims to be
Xeasy to extend and give a flexible system on which to rapidly develop added
Xfunctionality, or prototype new protocols.
X
XWWW: http://www.prosody.im/
0e313719ff012ceaf97a028d51caa8f5
exit



>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list