summaryrefslogtreecommitdiff
path: root/net-im/spectrum
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2011-04-04 19:47:46 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2011-04-04 19:47:46 +0200
commit4d967e4b6573a0f5108874334a5c2169118cf735 (patch)
treea8ba82b06dec617579d372c07609a08501c1609c /net-im/spectrum
parent3539b8a3783ecde12ecf8b8cc1c0197c9532a689 (diff)
downloadoverlay-4d967e4b6573a0f5108874334a5c2169118cf735.tar.gz
overlay-4d967e4b6573a0f5108874334a5c2169118cf735.tar.bz2
overlay-4d967e4b6573a0f5108874334a5c2169118cf735.zip
Spectrum
Diffstat (limited to 'net-im/spectrum')
-rw-r--r--net-im/spectrum/Manifest6
-rw-r--r--net-im/spectrum/files/spectrum-1.4.7_remoteroster.patch32
-rw-r--r--net-im/spectrum/files/spectrum.cfg151
-rw-r--r--net-im/spectrum/files/spectrum.initd29
-rw-r--r--net-im/spectrum/files/spectrum.symlink.cfg151
-rw-r--r--net-im/spectrum/spectrum-1.4.7-r1.ebuild134
6 files changed, 503 insertions, 0 deletions
diff --git a/net-im/spectrum/Manifest b/net-im/spectrum/Manifest
new file mode 100644
index 0000000..f32b435
--- /dev/null
+++ b/net-im/spectrum/Manifest
@@ -0,0 +1,6 @@
+AUX spectrum-1.4.7_remoteroster.patch 1408 RMD160 fce0906cd001a24df390c7ffa90839a1a325ffd1 SHA1 a4488b46e63ab8f7b8a69c9e4f42bf4e010a6d9a SHA256 de84c845a4f8a4a9c30d2c18d15a55623ddbfde02fbd963b91d09d8b1fc8b652
+AUX spectrum.cfg 4770 RMD160 1dfba51b4c4ee6f991b3082a8cf4f4b0234cf8b0 SHA1 c321c107ac4c5d5dfe239bc6e03e46b405b2a72a SHA256 c29eb5bed5776bdce171eb303e0e6815b60dc3c61f2a311492204337145cbe85
+AUX spectrum.initd 794 RMD160 cd9487532674eb7532559469a07bf99e14d91645 SHA1 6320ba9db02abb5602ccfc9d0626a6acd441d800 SHA256 1a995089b661adddd1f9afeb50e4718174b2cf16140036054e2a4f4c8f1ccd1a
+AUX spectrum.symlink.cfg 4855 RMD160 8e4cf7ab0237dfff0f713a32e37d2630af777273 SHA1 22a17ecc225fe6a9237947c35126b32c0f3a9447 SHA256 3dfb88f041ae3a835241ea4c128ce6958a95f944534349aebdb56d9d74efe1f3
+DIST spectrum-1.4.7.tar.gz 235303 RMD160 22db29cdd321a1fc7d77db7eb09c19cb49c963d6 SHA1 d07c198090ee1b0404d7641546d2feb56e912ea7 SHA256 6e8049c7c2370613b94377a4c17c32806032488b194bb26e694f4a4e75bd550d
+EBUILD spectrum-1.4.7-r1.ebuild 3656 RMD160 0b7165ade88e0d2d02dc75a6f0dbb7ff4168b020 SHA1 57a1026f1c3f63cc5bee65178c8821e4b7e93669 SHA256 63d1ad0b4275f570fe2f490ff1b8c715a5d0af081dc19555ff21e9a0f744a7e2
diff --git a/net-im/spectrum/files/spectrum-1.4.7_remoteroster.patch b/net-im/spectrum/files/spectrum-1.4.7_remoteroster.patch
new file mode 100644
index 0000000..bd35d60
--- /dev/null
+++ b/net-im/spectrum/files/spectrum-1.4.7_remoteroster.patch
@@ -0,0 +1,32 @@
+diff --git a/src/spectrumbuddy.cpp b/src/spectrumbuddy.cpp
+index 74d5194..910266c 100644
+--- a/src/spectrumbuddy.cpp
++++ b/src/spectrumbuddy.cpp
+@@ -36,10 +36,10 @@ SpectrumBuddy::~SpectrumBuddy() {
+
+ std::string SpectrumBuddy::getAlias() {
+ std::string alias;
+- if (purple_buddy_get_server_alias(m_buddy))
+- alias = (std::string) purple_buddy_get_server_alias(m_buddy);
+- else
++ if (purple_buddy_get_alias(m_buddy))
+ alias = (std::string) purple_buddy_get_alias(m_buddy);
++ else
++ alias = (std::string) purple_buddy_get_server_alias(m_buddy);
+ return alias;
+ }
+
+diff --git a/src/sql.cpp b/src/sql.cpp
+index 8fbc64a..70bf5db 100644
+--- a/src/sql.cpp
++++ b/src/sql.cpp
+@@ -905,7 +905,8 @@ GHashTable *SQLClass::getBuddies(long userId, PurpleAccount *account) {
+ // create buddy
+ buddy = purple_buddy_new(account, buddyUins[k].c_str(), buddyNicknames[k].c_str());
+ purple_blist_add_buddy(buddy, contact, g, NULL);
+- Log("ADDING BUDDY", buddyIds[k] << " " << buddyUins[k] << " subscription: " << subscription << " " << buddy);
++ purple_blist_server_alias_buddy(buddy, buddyNicknames[k].c_str());
++ Log("ADDING BUDDY", buddyIds[k] << " " << buddyUins[k] << " " << buddyNicknames[k] << " subscription: " << subscription << " " << buddy);
+
+ // add settings
+ GHashTable *settings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify) purple_value_destroy);
diff --git a/net-im/spectrum/files/spectrum.cfg b/net-im/spectrum/files/spectrum.cfg
new file mode 100644
index 0000000..c512ef4
--- /dev/null
+++ b/net-im/spectrum/files/spectrum.cfg
@@ -0,0 +1,151 @@
+[service]
+# enable this spectrum instance
+enable=1
+
+# one of: aim, facebook, gg, icq, irc, msn, myspace, qq, simple, xmpp, yahoo
+protocol=S2P
+
+# component ip
+server=127.0.0.1
+
+# if use_proxy is 1, the http_proxy env var will be used as the proxy server
+# for example export http_proxy="http://user:passwd@your.proxy.server:port/"
+use_proxy=0
+
+# component JID
+jid=S2P.example.com
+
+# component secret
+password=secret
+
+# component port
+port=5347
+
+config_interface = /var/run/spectrum/S2P.sock
+
+# IP:port where filetransfer proxy binds to. This has to be public IP.
+#filetransfer_bind_address=192.0.2.1:12345
+
+# IP:port which will be sent in filetransfer request as stream host.
+#filetransfer_public_address=192.0.2.1:12345
+
+# admin JIDs - Jabber IDs of transport administrators who have access to admin adhoc commands
+# separated by semicolons
+#admins=admin@example.com;foo@bar.cz
+
+# directory where downloaded files will be saved
+filetransfer_cache=/var/lib/spectrum/S2P/filetransfer_cache
+
+# URL used to acces filestransfer_cache directory from the web.
+filetransfer_web=http://example.com/files/
+
+# name of transport (this will appear in service discovery)
+name=My S2P Transport
+
+# default language
+language=en
+
+# transport features separated by semicolons
+# combination of: avatars, chatstate, filetransfer
+# if commented, all features will be used
+# This variable is DEPRECATED and will be removed in future versions. Use [features] instead.
+#transport_features = avatars;chatstate;filetransfer
+
+# if vip_mode is 1, users are divided to 2 groups according to 'vip' database field
+vip_mode=0
+
+# if vip_mode is 1, you can set transport to be availabe only for VIP users by setting only_for_vip to 1.
+only_for_vip=0
+
+# if vip_mode is 1 and only_for_vip is 1, users can connect from these servers even they are not VIP.
+# This feature is useful, if you want to enable transport only for users from your server, but also want
+# to give access to VIP users from other servers (for example from GTalk)
+# seperated by semicolons
+#allowed_servers=localhost
+
+# transport features separated by semicolons which will be used for VIP users.
+# combination of: avatars, chatstate, filetransfer
+# if commented, all features will be used
+# This variable is DEPRECATED and will be removed in future versions. Use [vip-features] instead.
+#vip_features = avatars;chatstate;filetransfer
+
+# pid file
+pid_file=/var/run/spectrum/S2P.pid
+
+# require_tls to connect legacy network
+#require_tls=false
+
+# Eventloop used by Spectrum. Allows to change default use of poll to epoll,
+# which should be faster and handles more connections better.
+# WARNING: some 3rd party libpurple protocol plugins are not prepared to be
+# used with different eventloop, but protocols included in libpurple by default
+# works OK.
+#eventloop=glib
+
+[registration]
+# Set to 0 to disable transport registration to everyone except
+# people from host from allowed_servers list.
+#enable_public_registration=1
+
+# You can override username registered by transport user. This is useful
+# for example if you want to let users to register only their Facebook name
+# and internally connect them to facebook_name@chat.facebook.com.
+# $username variable is replaced by username which has been registered
+# by particular user.
+#username_mask = $username@chat.facebook.com
+
+# This option allows you to white-list newly created accounts according
+# to regexp. for example allowed_usernames=*.\.gmail\.com$ will allow only
+# GTalk users to register. If you use username_mask, then username_mask is
+# applied before this option.
+#allowed_usernames=regexp
+
+# Label used to described username field in registration form
+#username_label = Facebook username
+
+# This variable overrides default instructions text in registration form.
+#instructions = Type your Facebook name here:
+
+# Transport features, all features are enabled by default.
+[features]
+#filetransfer=1
+#avatars=1
+#chatstates=1
+#statistics=1
+
+# Transport features for VIP users, all features are enabled by default.
+[vip-features]
+#filetransfer=1
+#avatars=1
+#chatstates=1
+
+[logging]
+# log file, needs to be unique for each spectrum instance
+log_file=/var/log/spectrum/S2P.log
+
+# log areas
+# combination of: xml, purple
+log_areas=xml;purple
+
+[database]
+# mysql or sqlite
+type=sqlite
+
+# hostname (not needed for sqlite)
+#host=localhost
+
+# username (not needed for sqlite)
+#user=user
+
+# password (not needed for sqlite)
+#password=password
+# sqlite: set path to database file here
+# mysql: set to name of database
+database=/var/lib/spectrum/S2P/database/S2P.sqlite
+# table prefix for multiple transport instances sharing the same database
+#prefix=S2P_
+
+[purple]
+# avatar, vcard, roster storage
+# needs to be unique for each spectrum instance
+userdir=/var/lib/spectrum/S2P/userdir
diff --git a/net-im/spectrum/files/spectrum.initd b/net-im/spectrum/files/spectrum.initd
new file mode 100644
index 0000000..f3e5eb6
--- /dev/null
+++ b/net-im/spectrum/files/spectrum.initd
@@ -0,0 +1,29 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+PROTOCOL=${SVCNAME#*.}
+
+depend() {
+ need net
+ use jabber-server
+}
+
+start() {
+ if [ -z "${PROTOCOL}" ] || [ ${SVCNAME} == "spectrum" ]; then
+ eerror "Please use /etc/init.d/spectrum.PROTOCOL instead of /etc/init.d/spectrum"
+ eerror "to start Spectrum for the desired protocol."
+ return 1
+ fi
+
+ ebegin "Starting ${PROTOCOL} Spectrum Transport"
+ start-stop-daemon --start --pidfile ${PIDFILE} \
+ --chuid jabber:jabber --exec /usr/bin/spectrum -- ${CONFFILE}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${PROTOCOL} Spectrum Transport"
+ start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
+ eend $?
+}
diff --git a/net-im/spectrum/files/spectrum.symlink.cfg b/net-im/spectrum/files/spectrum.symlink.cfg
new file mode 100644
index 0000000..514fcbd
--- /dev/null
+++ b/net-im/spectrum/files/spectrum.symlink.cfg
@@ -0,0 +1,151 @@
+[service]
+# enable this spectrum instance
+enable=1
+
+# one of: aim, facebook, gg, icq, irc, msn, myspace, qq, simple, xmpp, yahoo
+protocol=$filename:protocol
+
+# component ip
+server=127.0.0.1
+
+# if use_proxy is 1, the http_proxy env var will be used as the proxy server
+# for example export http_proxy="http://user:passwd@your.proxy.server:port/"
+use_proxy=0
+
+# component JID
+jid=$protocol.example.com
+
+# component secret
+password=secret
+
+# component port
+port=$filename:port
+
+config_interface = /var/run/spectrum/$protocol.sock
+
+# IP:port where filetransfer proxy binds to. This has to be public IP.
+#filetransfer_bind_address=192.0.2.1:$port
+
+# IP:port which will be sent in filetransfer request as stream host.
+#filetransfer_public_address=192.0.2.1:$port
+
+# admin JIDs - Jabber IDs of transport administrators who have access to admin adhoc commands
+# separated by semicolons
+#admins=admin@example.com;foo@bar.cz
+
+# directory where downloaded files will be saved
+filetransfer_cache=/var/lib/spectrum/$protocol/filetransfer_cache
+
+# URL used to acces filestransfer_cache directory from the web.
+filetransfer_web=http://example.com/files/
+
+# name of transport (this will appear in service discovery)
+name=My $protocol Transport
+
+# default language
+language=en
+
+# transport features separated by semicolons
+# combination of: avatars, chatstate, filetransfer
+# if commented, all features will be used
+# This variable is DEPRECATED and will be removed in future versions. Use [features] instead.
+#transport_features = avatars;chatstate;filetransfer
+
+# if vip_mode is 1, users are divided to 2 groups according to 'vip' database field
+vip_mode=0
+
+# if vip_mode is 1, you can set transport to be availabe only for VIP users by setting only_for_vip to 1.
+only_for_vip=0
+
+# if vip_mode is 1 and only_for_vip is 1, users can connect from these servers even they are not VIP.
+# This feature is useful, if you want to enable transport only for users from your server, but also want
+# to give access to VIP users from other servers (for example from GTalk)
+# seperated by semicolons
+#allowed_servers=localhost
+
+# transport features separated by semicolons which will be used for VIP users.
+# combination of: avatars, chatstate, filetransfer
+# if commented, all features will be used
+# This variable is DEPRECATED and will be removed in future versions. Use [vip-features] instead.
+#vip_features = avatars;chatstate;filetransfer
+
+# pid file
+pid_file=/var/run/spectrum/$protocol.pid
+
+# require_tls to connect legacy network
+#require_tls=false
+
+# Eventloop used by Spectrum. Allows to change default use of poll to epoll,
+# which should be faster and handles more connections better.
+# WARNING: some 3rd party libpurple protocol plugins are not prepared to be
+# used with different eventloop, but protocols included in libpurple by default
+# works OK.
+#eventloop=glib
+
+[registration]
+# Set to 0 to disable transport registration to everyone except
+# people from host from allowed_servers list.
+#enable_public_registration=1
+
+# You can override username registered by transport user. This is useful
+# for example if you want to let users to register only their Facebook name
+# and internally connect them to facebook_name@chat.facebook.com.
+# $username variable is replaced by username which has been registered
+# by particular user.
+#username_mask = $username@chat.facebook.com
+
+# This option allows you to white-list newly created accounts according
+# to regexp. for example allowed_usernames=*.\.gmail\.com$ will allow only
+# GTalk users to register. If you use username_mask, then username_mask is
+# applied before this option.
+#allowed_usernames=regexp
+
+# Label used to described username field in registration form
+#username_label = Facebook username
+
+# This variable overrides default instructions text in registration form.
+#instructions = Type your Facebook name here:
+
+# Transport features, all features are enabled by default.
+[features]
+#filetransfer=1
+#avatars=1
+#chatstates=1
+#statistics=1
+
+# Transport features for VIP users, all features are enabled by default.
+[vip-features]
+#filetransfer=1
+#avatars=1
+#chatstates=1
+
+[logging]
+# log file, needs to be unique for each spectrum instance
+log_file=/var/log/spectrum/$protocol.log
+
+# log areas
+# combination of: xml, purple
+log_areas=xml;purple
+
+[database]
+# mysql or sqlite
+type=sqlite
+
+# hostname (not needed for sqlite)
+#host=localhost
+
+# username (not needed for sqlite)
+#user=user
+
+# password (not needed for sqlite)
+#password=password
+# sqlite: set path to database file here
+# mysql: set to name of database
+database=/var/lib/spectrum/$protocol/database/$protocol.sqlite
+# table prefix for multiple transport instances sharing the same database
+#prefix=$protocol_
+
+[purple]
+# avatar, vcard, roster storage
+# needs to be unique for each spectrum instance
+userdir=/var/lib/spectrum/$protocol/userdir
diff --git a/net-im/spectrum/spectrum-1.4.7-r1.ebuild b/net-im/spectrum/spectrum-1.4.7-r1.ebuild
new file mode 100644
index 0000000..406e4b2
--- /dev/null
+++ b/net-im/spectrum/spectrum-1.4.7-r1.ebuild
@@ -0,0 +1,134 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+EAPI=2
+
+inherit cmake-utils
+
+DESCRIPTION="Spectrum is an XMPP transport/gateway"
+HOMEPAGE="http://spectrum.im"
+
+SRC_URI="http://spectrum.im/attachments/download/37/spectrum-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="mysql sqlite symlinks tools staticport"
+
+RDEPEND=">=dev-libs/poco-1.3.3[mysql?,sqlite?]
+ media-gfx/imagemagick[cxx]
+ >=net-im/pidgin-2.6.0
+ >=net-libs/gloox-1.0
+ dev-python/xmpppy"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ dev-util/cmake"
+
+PROTOCOL_LIST="aim facebook gg icq irc msn msn_pecan myspace qq simple sipe twitter xmpp yahoo"
+
+pkg_setup() {
+ if ! ( use sqlite || use mysql ); then
+ ewarn "No database use flag set!"
+ ewarn "You need to enable the mysql or sqlite use flag!"
+ die
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}_remoteroster.patch"
+}
+
+src_install () {
+ cmake-utils_src_install
+
+ # Install transports with seperate config files (default).
+ # If USE="symlinks" is set, install one config file with symlinks to all transports.
+
+ port=5347
+
+ # prepare config for mysql or just copy
+ cp "${FILESDIR}/spectrum.cfg" "${WORKDIR}/spectrum.cfg"
+
+ if use mysql ; then
+ sed -e 's,^\(type\)=sqlite$,\1=mysql,' \
+ -e 's,^#\(host=localhost\)$,\1,' \
+ -e 's,^#\(user=user\)$,\1,' \
+ -e 's,^#\(password=password\)$,\1,' \
+ -e 's,^\(database=.*\),#\1,' \
+ -e 's,^#\(prefix=.*\),\1,' \
+ -i "${WORKDIR}/spectrum.cfg" || die
+ fi
+
+ # install shared-config when using symlinks
+ if use symlinks; then
+ insinto /etc/spectrum
+ newins "${WORKDIR}"/spectrum.cfg spectrum-shared-conf || die
+ fi
+
+ # install protocol-specific configs or symlinks
+ insinto /etc/spectrum
+ for protocol in ${PROTOCOL_LIST}; do
+ if use symlinks; then
+ dosym spectrum-shared-conf "/etc/spectrum/${protocol}:${port}.cfg" || die
+ sed -e 's,PROTOCOL,'${protocol}:${port}',g' \
+ "${FILESDIR}"/spectrum.confd > "${WORKDIR}"/spectrum.confd
+ else
+ sed -e 's,\$filename:protocol,'${protocol}',g' \
+ -e 's,\$filename:port,'${port}',g' \
+ "${WORKDIR}"/spectrum.cfg > "${WORKDIR}/${protocol}.cfg" || die
+ sed -e 's,PROTOCOL,'${protocol}',g' \
+ "${FILESDIR}"/spectrum.confd > "${WORKDIR}"/spectrum.confd
+ doins "${WORKDIR}/${protocol}.cfg" || die
+ fi
+
+ # install prepared confd
+ newconfd "${WORKDIR}"/spectrum.confd spectrum.${protocol} || die
+
+ if ! use staticport; then
+ port=$[${port}+1]
+ fi
+ done
+
+ # Install init files
+ newinitd "${FILESDIR}"/spectrum.initd spectrum || die
+ for protocol in ${PROTOCOL_LIST}; do
+ dosym spectrum /etc/init.d/spectrum."${protocol}"
+ done
+
+ # Directories
+ dodir "/var/lib/spectrum" || die
+ dodir "/var/log/spectrum" || die
+ dodir "/var/run/spectrum" || die
+
+ # Directories for each transport
+ for protocol in ${PROTOCOL_LIST}; do
+ dodir "/var/lib/spectrum/$protocol/database" || die
+ dodir "/var/lib/spectrum/$protocol/userdir" || die
+ dodir "/var/lib/spectrum/$protocol/filetransfer_cache" || die
+ done
+
+ # Install mysql schema
+ if use mysql; then
+ insinto "/usr/share/spectrum/schemas"
+ doins schemas/* || die
+ fi
+
+ # Install misc tools
+ if use tools; then
+ insinto "/usr/share/spectrum/tools"
+ doins tools/* || die
+ fi
+}
+
+pkg_postinst() {
+ # Set correct rights
+ chown jabber:jabber -R "/etc/spectrum" || die
+ chown jabber:jabber -R "/var/lib/spectrum" || die
+ chown jabber:jabber -R "/var/log/spectrum" || die
+ chown jabber:jabber -R "/var/run/spectrum" || die
+ chmod 750 "/etc/spectrum" || die
+ chmod 750 "/var/lib/spectrum" || die
+ chmod 750 "/var/log/spectrum" || die
+ chmod 750 "/var/run/spectrum" || die
+}