From 13a59c363660cbdd14b93994f054287320bad09c Mon Sep 17 00:00:00 2001 From: Sergey Morozov Date: Sat, 3 May 2014 22:56:29 +0400 Subject: [PATCH] Add spectrum2 (XMPP transport to the other IM networks) ebuilds in this commit: spectrum/spectrum-1.4.8 spectrum/spectrum-2.0.0 spectrum/spectrum-2.9999 spectrum/spectrum-9999 swift/swift-2.0_rc1 swift/swift-9999 All ebuilds taken from official spectrum2 overlay new file: net-im/spectrum/Manifest new file: net-im/spectrum/files/spectrum-1.4.7_remoteroster.patch new file: net-im/spectrum/files/spectrum.cfg new file: net-im/spectrum/files/spectrum.confd new file: net-im/spectrum/files/spectrum.initd new file: net-im/spectrum/files/spectrum.symlink.cfg new file: net-im/spectrum/files/spectrum2.initd new file: net-im/spectrum/spectrum-1.4.8.ebuild new file: net-im/spectrum/spectrum-2.0.0_beta2.ebuild new file: net-im/spectrum/spectrum-2.9999.ebuild new file: net-im/spectrum/spectrum-9999.ebuild new file: net-im/swift/Manifest new file: net-im/swift/swift-2.0_rc1.ebuild new file: net-im/swift/swift-9999.ebuild --- net-im/spectrum/Manifest | 12 ++ .../files/spectrum-1.4.7_remoteroster.patch | 32 +++ net-im/spectrum/files/spectrum.cfg | 151 ++++++++++++++ net-im/spectrum/files/spectrum.confd | 7 + net-im/spectrum/files/spectrum.initd | 22 +++ net-im/spectrum/files/spectrum.symlink.cfg | 151 ++++++++++++++ net-im/spectrum/files/spectrum2.initd | 25 +++ net-im/spectrum/spectrum-1.4.8.ebuild | 137 +++++++++++++ net-im/spectrum/spectrum-2.0.0_beta2.ebuild | 110 +++++++++++ net-im/spectrum/spectrum-2.9999.ebuild | 89 +++++++++ net-im/spectrum/spectrum-9999.ebuild | 1 + net-im/swift/Manifest | 3 + net-im/swift/swift-2.0_rc1.ebuild | 186 ++++++++++++++++++ net-im/swift/swift-9999.ebuild | 180 +++++++++++++++++ 14 files changed, 1106 insertions(+) create mode 100644 net-im/spectrum/Manifest create mode 100644 net-im/spectrum/files/spectrum-1.4.7_remoteroster.patch create mode 100644 net-im/spectrum/files/spectrum.cfg create mode 100644 net-im/spectrum/files/spectrum.confd create mode 100644 net-im/spectrum/files/spectrum.initd create mode 100644 net-im/spectrum/files/spectrum.symlink.cfg create mode 100644 net-im/spectrum/files/spectrum2.initd create mode 100644 net-im/spectrum/spectrum-1.4.8.ebuild create mode 100644 net-im/spectrum/spectrum-2.0.0_beta2.ebuild create mode 100644 net-im/spectrum/spectrum-2.9999.ebuild create mode 120000 net-im/spectrum/spectrum-9999.ebuild create mode 100644 net-im/swift/Manifest create mode 100644 net-im/swift/swift-2.0_rc1.ebuild create mode 100644 net-im/swift/swift-9999.ebuild diff --git a/net-im/spectrum/Manifest b/net-im/spectrum/Manifest new file mode 100644 index 0000000..ac41449 --- /dev/null +++ b/net-im/spectrum/Manifest @@ -0,0 +1,12 @@ +AUX spectrum-1.4.7_remoteroster.patch 1408 SHA256 de84c845a4f8a4a9c30d2c18d15a55623ddbfde02fbd963b91d09d8b1fc8b652 SHA512 b74edc60ec62b9feca7799db749b42bed7fa728e7cef1a82c052820a71f663496973fe3188593f4f2f5331ea5cecc9559fe99a6f3103dc8913c7e6700b579885 WHIRLPOOL ee71083330cccf019ababa44a26108b468329d9a3286cc28d4c6f9d43a45dc39125ffc3086f9d67737be7a2e068e380c13d18258def2d4770b98d4414360d2b5 +AUX spectrum.cfg 4770 SHA256 c29eb5bed5776bdce171eb303e0e6815b60dc3c61f2a311492204337145cbe85 SHA512 ab1d9e976ef5b0c29518e5ce3e92c94e970058d41854b8db98f93d410e21fb6e0d8ea179f6f43ee9da1228d4c7ebb33af1f0213a518ba0aefb62f369f9030866 WHIRLPOOL 78d3abf5e7cd494660f5153e60d5dc14d5e616db2573c30398b8d767d9c05f34c881004bb5761189ff76ac13834d02dbcb14b0335747dcce22d6691aa80fa333 +AUX spectrum.confd 157 SHA256 5f1c7a7c614ffb15ba64caadd560088cf3a8032f3973489a31f65c89ce286c85 SHA512 511213a0bb4d91b22d3c9ac8e90978248076a9697cbeaa5bfd53eaac3ce1850f78739768dc88f2443519b64dc61f278be32ed408f0c7b2f64f29c01f94fc5fee WHIRLPOOL 5fee736176e83e264af7229836bec5a09bcd598cfaaf7dea9f8362e3c864d6a241128d96c9030d3640247692b250b39d7d1f906bad7caa2c08961d10468a445d +AUX spectrum.initd 592 SHA256 80c37c82dcd1b867400de4e23433ec0b822418d2858b441dd464259e650bf27b SHA512 ed6a168a42842969804938ef7fd1a4d0d6c8a98feb5727ac41b21c22a874a4ebb1410b760e396c2f9296207fca7499a07ee85b994d2f9222cca0c834c559ff17 WHIRLPOOL 3c36392881880806af8f47983cc742d735aa2597b7444c26021d5d9038b1c3b9c658df474e23722727116ff8b2d7052209d68fa14241d5e0f0d42da032f7fa37 +AUX spectrum.symlink.cfg 4855 SHA256 3dfb88f041ae3a835241ea4c128ce6958a95f944534349aebdb56d9d74efe1f3 SHA512 bdd31ae8093a10e6d4f8851451230cccf47132e3374b46863e03b793d4495901f366858dd8b2ea02143f932cf5abc63f4719be3b8ef0325fea6db11e54d458ad WHIRLPOOL 363dd7aaa569b061b2b0e09a1cfa9280f87d1c26c503a14b921e7a36ec956b7d517a668fe64be170f2fc73b1658439cca449e4f043b3c94714055d9c8c27fdf7 +AUX spectrum2.initd 636 SHA256 89e516647bda5c039fe933837212a79f9390879938ba1abd3b0a187066a687be SHA512 07b728025b1df78f1e3c9141b516b07d85dfeb7c8d51f077627c544d21f1e7b0be99444fe92f78a675e583d2d3b67bcb091f1bb2b90a0eb19bf8cf794cfeab60 WHIRLPOOL 65032107ffa1931b28ce9f9b614dc681f20a29b42e16af5a9a2ff87e98937ca83994d3c8f2c1365a9c34384b6e6a7440f1e7199483c2110051da50afc92549b6 +DIST spectrum-1.4.8.tar.gz 239725 SHA256 40045139cdeb7fbc085fe80bb8124b518bb57520fbb644bc50b132de8cebc3cc SHA512 05f5932ba4e5d42107b2bf1396d5c410a792d9692841d82676eaf136b0a051b9efa3232d6a82d3ad1fe4b4d77b8e6e34e005145456957633bc88a9b5d3095094 WHIRLPOOL 822fd187282bb663073aa80b2358b4314193db43387f493fee5161c7992e9dda9accbf3609c3f5ee4cc3aea63b733284a5b2c77a0187332432a608c9f21d39a2 +DIST spectrum-2.0.0-beta2.tar.gz 273480 SHA256 51e0db3000de13258b4a2562a40511d40eb6e39aa45728f4ae5efcd520b2c4c7 SHA512 95caa53f8f13c822a6e07635fb9b7e277a4fa97505d5020649ef77221033b3aa23bb6fc0cd3756ed440ef19d5a141f24122d975b063320cecce3a3a02a4a7b64 WHIRLPOOL 9a215317dd7d50482248cb0aa06f0a18052bc3270ee0a1632736b23cfa86a7c640ed991150959648d93c77007b13a3a5af8a057fb192ccbaf328ef61bd42d6f2 +EBUILD spectrum-1.4.8.ebuild 3656 SHA256 a1b79306dbfb807582a9d9660a67f279ee0077c69d500442dbb9514fc93c0f39 SHA512 d9b279e1d7db99b0700b051b68ab8d708ee8663235e4777685d60849dbf56e60d54a3c54f4f4051c89149ba2e8a395b6bc2796d11729314719054c6c9757318e WHIRLPOOL 387bfd16b75c3007ae80da4e682afcf56a2d78aa47671d138e4e1692feb1f459230e0572cce46a7c36273e7976a72195f0a5720e663ac5a3aa53705903722367 +EBUILD spectrum-2.0.0_beta2.ebuild 2934 SHA256 a5b426bab6f9d75c9a3e3b4513fd20afe3f8d4abc67c93cc383db6c08e640447 SHA512 6c3534509cee03d6b08422c1ce390d43877d1e3e6284a0cd35de119944cc7ae140bc486a2522b95c1ffaf9440ec4c216adec39a8d7403bf0cabe777e06b895cf WHIRLPOOL b155a5ddd4c0387625842196da33dffcf9c26de1c8400d856c2156f42e351a8d9227b92147df5bebfbc88a67a7deb6e558a9226f58c0df9667071dd02ce6c977 +EBUILD spectrum-2.9999.ebuild 2911 SHA256 96f09aa66367860227087ecc4e2de65d4133495c379bda300e9748f08571450b SHA512 bc1b77318506aebea31e92c0a389b5a4c87651d8576ec1fdc617db8f9cb7c375a2eb954a80ef966d9be88be64a72404e9557d6efc5f0e0bd29ac4dfd4b858508 WHIRLPOOL 582f504b19b14354d4ee96da1d25c654289627681ac56f55e6810da8a67ae01ae852b6476b85392dcc3cf3b40fe7b6930f13791df0904d954305a025a0b9412f +EBUILD spectrum-9999.ebuild 2934 SHA256 a5b426bab6f9d75c9a3e3b4513fd20afe3f8d4abc67c93cc383db6c08e640447 SHA512 6c3534509cee03d6b08422c1ce390d43877d1e3e6284a0cd35de119944cc7ae140bc486a2522b95c1ffaf9440ec4c216adec39a8d7403bf0cabe777e06b895cf WHIRLPOOL b155a5ddd4c0387625842196da33dffcf9c26de1c8400d856c2156f42e351a8d9227b92147df5bebfbc88a67a7deb6e558a9226f58c0df9667071dd02ce6c977 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.confd b/net-im/spectrum/files/spectrum.confd new file mode 100644 index 0000000..fec3b06 --- /dev/null +++ b/net-im/spectrum/files/spectrum.confd @@ -0,0 +1,7 @@ +# /etc/conf.d/spectrum.S2P: config file for spectrum S2P transport + +# Configfile +CONFFILE="/etc/spectrum/S2P.cfg" + +# PID +PIDFILE="/var/run/spectrum/S2P.pid" diff --git a/net-im/spectrum/files/spectrum.initd b/net-im/spectrum/files/spectrum.initd new file mode 100644 index 0000000..14ef30c --- /dev/null +++ b/net-im/spectrum/files/spectrum.initd @@ -0,0 +1,22 @@ +#!/sbin/runscript +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +depend() { + need net + use jabber-server +} + +start() { + ebegin "Starting SPECTRUMGEN2PROTOCOL XMPP/Spectrum Transport" + start-stop-daemon --start --pidfile ${PIDFILE} \ + --chuid jabber:jabber --exec /usr/bin/spectrum -- ${CONFFILE} + eend $? +} + +stop() { + ebegin "Stopping SPECTRUMGEN2PROTOCOL XMPP/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/files/spectrum2.initd b/net-im/spectrum/files/spectrum2.initd new file mode 100644 index 0000000..4842988 --- /dev/null +++ b/net-im/spectrum/files/spectrum2.initd @@ -0,0 +1,25 @@ +#!/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +LOGFILE=/var/log/spectrum2/std.log + +depend() { + need net + use jabber-server +} + +start() { + ebegin "Starting ${PROTOCOL} Spectrum Transport" + start-stop-daemon --start --user jabber --group jabber \ + --exec /usr/bin/spectrum2_manager start &> $LOGFILE + eend $? +} + +stop() { + ebegin "Stopping ${PROTOCOL} Spectrum Transport" + start-stop-daemon --user jabber --group jabber \ + --exec /usr/bin/spectrum2_manager stop 1>>$LOGFILE 2>&1 + eend $? +} diff --git a/net-im/spectrum/spectrum-1.4.8.ebuild b/net-im/spectrum/spectrum-1.4.8.ebuild new file mode 100644 index 0000000..2e17414 --- /dev/null +++ b/net-im/spectrum/spectrum-1.4.8.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=2 + +inherit cmake-utils + +DESCRIPTION="XMPP transport/gateway" +HOMEPAGE="http://spectrum.im" + +SRC_URI="https://github.com/downloads/hanzz/libtransport/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="mysql sqlite symlinks tools staticport" + +RDEPEND="dev-libs/libev + >=dev-libs/poco-1.3.3[mysql?,sqlite?] + dev-python/xmpppy + media-gfx/imagemagick[cxx] + >=net-im/pidgin-2.6.0 + >=net-libs/gloox-1.0" +DEPEND="${RDEPEND} + dev-util/cmake + sys-devel/gettext" + +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_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. + + # Declare (start) port + 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() { + # Create jabber-user + enewgroup jabber + enewuser jabber -1 -1 -1 jabber + + # Set correct rights + chown root: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 +} diff --git a/net-im/spectrum/spectrum-2.0.0_beta2.ebuild b/net-im/spectrum/spectrum-2.0.0_beta2.ebuild new file mode 100644 index 0000000..ce0af98 --- /dev/null +++ b/net-im/spectrum/spectrum-2.0.0_beta2.ebuild @@ -0,0 +1,110 @@ + +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="4" + +[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS="" + +inherit cmake-utils versionator ${VCS_ECLASS} + +DESCRIPTION="Spectrum is a XMPP transport/gateway" +HOMEPAGE="http://spectrum.im" +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="git://github.com/hanzz/libtransport.git" +else + MY_PN="spectrum" + MY_PV=$(replace_version_separator '_' '-') + MY_P="${MY_PN}-${MY_PV}" + SRC_URI="https://github.com/downloads/hanzz/libtransport/${MY_P}.tar.gz" + S="${WORKDIR}/${MY_P}" +fi + +LICENSE="GPL-2" +SLOT="2" +KEYWORDS="~amd64 ~x86" +IUSE_PLUGINS="frotz irc jabber purple skype sms twitter yahoo" +IUSE="debug doc libev mysql postgres sqlite test ${IUSE_PLUGINS}" + +# Richard H. (2012-10-17): 2.0_beta2 does only build with swift-2.0_beta1 +[[ ${PV} = *9999* ]] && RDEPEND="net-im/swift[ssl]" || RDEPEND="=net-im/swift-2.0_beta1[ssl]" + +RDEPEND="${RDEPEND} + dev-libs/libev + dev-libs/log4cxx + dev-libs/openssl + dev-libs/popt + dev-libs/protobuf + mysql? ( virtual/mysql ) + postgres? ( dev-libs/libpqxx ) + sqlite? ( dev-db/sqlite:3 ) + irc? ( net-im/communi ) + purple? ( >=net-im/pidgin-2.6.0 ) + skype? ( dev-libs/dbus-glib x11-base/xorg-server[xvfb] net-im/skype ) + libev? ( dev-libs/libev ) + " + +DEPEND="${RDEPEND} + dev-util/cmake + sys-devel/gettext + doc? ( app-doc/doxygen ) + test? ( dev-util/cppunit ) + " + +REQUIRED_USE="|| ( sqlite mysql postgres )" + +pkg_setup() { + CMAKE_IN_SOURCE_BUILD=1 + use debug && CMAKE_BUILD_TYPE=Debug + MYCMAKEARGS="-DLIB_INSTALL_DIR=$(get_libdir)" +} + +src_prepare() { + # no patches as of now + #epatch "${FILESDIR}"/spectrum2-.patch + base_src_prepare +} + +src_configure() { + mycmakeargs=( + $(cmake-utils_use_enable mysql MYSQL) + $(cmake-utils_use_enable postgres PQXX) + $(cmake-utils_use_enable sqlite SQLITE3) + $(cmake-utils_use_enable doc DOCS) + $(cmake-utils_use_enable frotz FROTZ) + $(cmake-utils_use_enable irc IRC) + $(cmake-utils_use_enable jabber SWIFTEN) + $(cmake-utils_use_enable purple PURPLE) + $(cmake-utils_use_enable skype SKYPE) + $(cmake-utils_use_enable sms SMSTOOLS3) + $(cmake-utils_use_enable twitter TWITTER) + $(cmake-utils_use_enable yahoo YAHOO2) + ) + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + newinitd "${FILESDIR}"/spectrum2.initd spectrum2 + keepdir "${EPREFIX}"/var/lib/spectrum2 + keepdir "${EPREFIX}"/var/log/spectrum2 + keepdir "${EPREFIX}"/var/run/spectrum2 +} + + +pkg_postinst() { + # Create jabber-user + enewgroup jabber + enewuser jabber -1 -1 -1 jabber + + # Set correct rights + chown jabber:jabber -R "/etc/spectrum2" || die + chown jabber:jabber -R "${EPREFIX}/var/log/spectrum2" || die + chown jabber:jabber -R "${EPREFIX}/var/run/spectrum2" || die + chmod 750 "/etc/spectrum2" || die + chmod 750 "${EPREFIX}/var/log/spectrum2" || die + chmod 750 "${EPREFIX}/var/run/spectrum2" || die +} diff --git a/net-im/spectrum/spectrum-2.9999.ebuild b/net-im/spectrum/spectrum-2.9999.ebuild new file mode 100644 index 0000000..30beec2 --- /dev/null +++ b/net-im/spectrum/spectrum-2.9999.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="4" + +[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS="" + +inherit cmake-utils ${VCS_ECLASS} + +DESCRIPTION="Spectrum is an XMPP transport/gateway" +HOMEPAGE="http://spectrum.im" + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="git://github.com/hanzz/libtransport.git" +else + MY_PV="${PV/_/-}" + SRC_URI="http://spectrum.im/attachments/download/57/${PN}-${MY_PV}.tar.gz" + S="${WORKDIR}/${PN}-${MY_PV}" +fi + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="" + +IUSE_PLUGINS="frotz irc purple skype smstools" +IUSE="debug doc libev log mysql postgres sqlite staticport symlinks test tools ${IUSE_PLUGINS}" + +RDEPEND="net-im/jabber-base + net-im/swiften + dev-libs/popt + dev-libs/openssl + log? ( dev-libs/log4cxx ) + mysql? ( virtual/mysql ) + postgres? ( dev-libs/libpqxx ) + sqlite? ( dev-db/sqlite:3 ) + frotz? ( dev-libs/protobuf ) + irc? ( net-im/communi dev-libs/protobuf ) + purple? ( >=net-im/pidgin-2.6.0 dev-libs/protobuf ) + skype? ( dev-libs/dbus-glib x11-base/xorg-server[xvfb] dev-libs/protobuf ) + libev? ( dev-libs/libev dev-libs/protobuf )" + +DEPEND="${RDEPEND} + sys-devel/gettext + dev-util/cmake + doc? ( app-doc/doxygen ) + test? ( dev-util/cppunit ) + " + +REQUIRED_USE="|| ( sqlite mysql postgres )" + +PROTOCOL_LIST="aim facebook gg icq irc msn msn_pecan myspace qq simple sipe twitter xmpp yahoo" + +pkg_setup() { + CMAKE_IN_SOURCE_BUILD=1 + use debug && CMAKE_BUILD_TYPE=Debug + MYCMAKEARGS="-DLIB_INSTALL_DIR=$(get_libdir)" +} + +src_prepare() { + use sqlite || { sed -i -e 's/find_package(sqlite3)/set(SQLITE3_FOUND FALSE)/' CMakeLists.txt || die; } + use mysql || { sed -i -e 's/find_package(mysql)/set(MYSQL_FOUND FALSE)/' CMakeLists.txt || die; } + use postgres || { sed -i -e 's/find_package(pqxx)/set(PQXX_FOUND FALSE)/' CMakeLists.txt || die; } + use test || { sed -i -e 's/find_package(cppunit)/set(CPPUNIT_FOUND FALSE)/' CMakeLists.txt || die; } + use doc || { sed -i -e 's/find_package(Doxygen)/set(DOXYGEN_FOUND FALSE)/' CMakeLists.txt || die; } + use purple || { sed -i -e '/find_package(purple)/d' CMakeLists.txt || die; } + use libev || { sed -i -e 's/find_package(event)/set(HAVE_EVENT FALSE)/' CMakeLists.txt || die; } + use irc || { sed -i -e 's/find_package(Communi)/set(IRC_FOUND, FALSE)/' CMakeLists.txt || die; } + use log || { sed -i -e 's/find_package(log4cxx)/set(LOG4CXX_FOUND, FALSE)/' CMakeLists.txt || die; } + + base_src_prepare +} + +src_install() { + cmake-utils_src_install + + newinitd "${FILESDIR}"/spectrum2.initd spectrum + keepdir "${EPREFIX}"/var/lib/spectrum2 + keepdir "${EPREFIX}"/var/log/spectrum2 + keepdir "${EPREFIX}"/var/run/spectrum2 +} + +pkg_postinst() { + # Set correct rights + chown jabber:jabber -R "/etc/spectrum2" + chown jabber:jabber "${EPREFIX}"/var/lib/spectrum2 + chown jabber:jabber "${EPREFIX}"/var/log/spectrum2 + chown jabber:jabber "${EPREFIX}"/var/run/spectrum2 +} diff --git a/net-im/spectrum/spectrum-9999.ebuild b/net-im/spectrum/spectrum-9999.ebuild new file mode 120000 index 0000000..4e3d246 --- /dev/null +++ b/net-im/spectrum/spectrum-9999.ebuild @@ -0,0 +1 @@ +spectrum-2.0.0_beta2.ebuild \ No newline at end of file diff --git a/net-im/swift/Manifest b/net-im/swift/Manifest new file mode 100644 index 0000000..5d801c8 --- /dev/null +++ b/net-im/swift/Manifest @@ -0,0 +1,3 @@ +DIST swift-2.0rc1.tar.gz 8810733 SHA256 e7c046d2be03c6decbb0cea2887a1d79675b1dd7a9331acfc7838251cff004c6 SHA512 efe1d4e25afd2eeed873690acc7f6ba1d893b924cfa045b3cdaabbc103fe75e411ad693124f41fcd2c603e013ad3c1e73e0040e3383d62ddb115be8c485ddf51 WHIRLPOOL 10e204813e6ce2061e1c286e290d23088b969f2ae721d90cd0f28b9734b389435b5b09a6e93b745b9a755bf08df45b912be52c4fad6c0c0494b3e3c2714fa6cb +EBUILD swift-2.0_rc1.ebuild 4284 SHA256 d61c5017ae23da832f61a63ff2555019f0501728ccc0f9f86a9bc857ed87cf38 SHA512 7229e8122848239abee24d782d62b09bf62d86f22b4b296f71d9e6fd63137950370b8feece8b95eaf7d71dd088e3d581d7597b8b04ccf06947b0dbfe001e0442 WHIRLPOOL 0a89d4d415fcfc104c8518ef4426a97041323c9a443de069704ff17589282d7c7cedcc01cea389c8e5a1aefb2740e69e3b48a02cd5a5194c7c777199d819dd59 +EBUILD swift-9999.ebuild 4155 SHA256 533bace0697943443c90bc72ca82ee33ad7725e0d8865d1ad5d019606e48d69e SHA512 6549a448751125ad2fb37d3e87531cac1a22c6a6160bc730d64417ab6da69c9a76ec1fbe8599eca3b8f2c8b55fcb425bf4617a1704d7e7b108e98395af20412c WHIRLPOOL 6278eae38502b789dc84707176df51e20dc2baa5f56ccfaa1328701b0699c107d654d047d6efcce0e58f40b7d04af2eb91f186c39298de14e78d8f224fd995a5 diff --git a/net-im/swift/swift-2.0_rc1.ebuild b/net-im/swift/swift-2.0_rc1.ebuild new file mode 100644 index 0000000..8c9abf1 --- /dev/null +++ b/net-im/swift/swift-2.0_rc1.ebuild @@ -0,0 +1,186 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=4 + +LANGS=" ca de es fr hu nl pl ru se sk" + +[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS="" + +inherit multilib toolchain-funcs linux-info qt4-r2 scons-utils ${VCS_ECLASS} + +inherit versionator +MY_PN="swift" +MY_PV=$(replace_version_separator 2 '') +MY_P="${MY_PN}-${MY_PV}" +S="${WORKDIR}/${MY_P}" + +DESCRIPTION="Your friendly chat client" +HOMEPAGE="http://swift.im/" +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="git://swift.im/swift" +else + SRC_URI="http://swift.im/downloads/releases/${MY_P}/${MY_P}.tar.gz" +fi + +LICENSE="GPL-3" +SLOT="0" +if [[ ${PV} == *9999* ]] ; then + KEYWORDS="" +else + KEYWORDS="~amd64 ~x86" +fi + +IUSE="avahi debug doc examples +expat qt4 ssl static-libs zeroconf" + +RDEPEND=" + dev-libs/boost + expat? ( dev-libs/expat ) + !expat? ( dev-libs/libxml2 ) + ssl? ( dev-libs/openssl ) + zeroconf? ( + avahi? ( net-dns/avahi ) + !avahi? ( net-misc/mDNSResponder ) + ) + net-dns/libidn + sys-libs/zlib + qt4? ( + x11-libs/libXScrnSaver + x11-libs/qt-gui + x11-libs/qt-webkit + ) +" +DEPEND="${RDEPEND} + doc? ( + >=app-text/docbook-xsl-stylesheets-1.75 + >=app-text/docbook-xml-dtd-4.5 + dev-libs/libxslt + ) +" +scons_targets=() +set_scons_targets() { + scons_targets=( Swiften ) + use qt4 && scons_targets+=( Swift ) + use avahi && scons_targets+=( Slimber ) + use examples && scons_targets+=( + Documentation/SwiftenDevelopersGuide/Examples + Limber + Sluift + Swiften/Config + Swiften/Examples + Swiften/QA + SwifTools + ) +} + +scons_vars=() +set_scons_vars() { + scons_vars=( + V=1 + allow_warnings=1 + cc="$(tc-getCC)" + cxx="$(tc-getCXX)" + ccflags="${CXXFLAGS}" + linkflags="${LDFLAGS}" + qt="${S}/local-qt" + openssl="${EPREFIX}/usr" + docbook_xsl="${EPREFIX}/usr/share/sgml/docbook/xsl-stylesheets" + docbook_xml="${EPREFIX}/usr/share/sgml/docbook/xml-dtd-4.5" + $(use_scons debug) + $(use !static-libs && use_scons !static-libs swiften_dll) + $(use_scons ssl openssl) + $(use zeroconf && use_scons !avahi bonjour) + ) +} + +src_prepare() { + mkdir local-qt + ln -s "${EPREFIX}"/usr/$(get_libdir)/qt4 local-qt/lib || die + ln -s "${EPREFIX}"/usr/include/qt4 local-qt/include || die + + cd 3rdParty || die + # TODO CppUnit, Lua + rm -rf Boost CAres DocBook Expat LCov LibIDN OpenSSL SCons SQLite ZLib || die + cd .. || die + + for x in ${LANGS}; do + if use !linguas_${x}; then + rm -f Swift/Translations/swift_${x}.ts || die + fi + done + + # Richard H. (2012-03-29): SCons ignores us, + # just delete unneeded stuff! + if use !avahi; then + rm -rf Slumber || die + fi + + if use !examples; then + rm -rf Documentation/SwiftenDevelopersGuide/Examples \ + Limber \ + Slimber \ + Sluift \ + Swiften/Examples \ + Swiften/QA \ + Swiftob || die + fi + + if use !qt4; then + rm -rf Swift || die + fi + + sed -i BuildTools/SCons/Tools/qt4.py \ + -e "s/linux2/linux${KV_MAJOR}/" \ + || die +} + +src_compile() { + set_scons_targets + set_scons_vars + + escons "${scons_vars[@]}" "${scons_targets[@]}" +} + +src_test() { + set_scons_targets + set_scons_vars + + escons "${scons_vars[@]}" test=unit QA +} + +src_install() { + set_scons_targets + set_scons_vars + + escons "${scons_vars[@]}" SWIFT_INSTALLDIR="${D}/usr" SWIFTEN_INSTALLDIR="${D}/usr" "${D}" "${scons_targets[@]}" + + if use avahi ; then + newbin Slimber/Qt/slimber slimber-qt + newbin Slimber/CLI/slimber slimber-cli + fi + + if use examples ; then + for i in EchoBot{1,2,3,4,5,6} EchoComponent ; do + newbin "Documentation/SwiftenDevelopersGuide/Examples/EchoBot/${i}" "${PN}-${i}" + done + + dobin Limber/limber + dobin Sluift/sluift + dobin Swiften/Config/swiften-config + + for i in BenchTool ConnectivityTest LinkLocalTool ParserTester SendFile SendMessage ; do + newbin "Swiften/Examples/${i}/${i}" "${PN}-${i}" + done + newbin Swiften/Examples/SendFile/ReceiveFile "${PN}-ReceiveFile" + use avahi && dobin Swiften/Examples/LinkLocalTool/LinkLocalTool + + for i in ClientTest NetworkTest StorageTest TLSTest ; do + newbin "Swiften/QA/${i}/${i}" "${PN}-${i}" + done + + newbin SwifTools/Idle/IdleQuerierTest/IdleQuerierTest ${PN}-IdleQuerierTest + fi + + use doc && dohtml "Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.html" +} diff --git a/net-im/swift/swift-9999.ebuild b/net-im/swift/swift-9999.ebuild new file mode 100644 index 0000000..8d7bf09 --- /dev/null +++ b/net-im/swift/swift-9999.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=4 + +LANGS=" ca de es fr hu nl pl ru se sk" + +[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS="" + +inherit multilib toolchain-funcs linux-info qt4-r2 scons-utils ${VCS_ECLASS} + +DESCRIPTION="Your friendly chat client" +HOMEPAGE="http://swift.im/" +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="git://swift.im/swift" +else + SRC_URI="http://swift.im/downloads/releases/${P}/${P}.tar.gz" +fi + +LICENSE="GPL-3" +SLOT="0" +if [[ ${PV} == *9999* ]] ; then + KEYWORDS="" +else + KEYWORDS="~amd64 ~x86" +fi + +IUSE="avahi debug doc examples +expat qt4 ssl static-libs zeroconf" + +RDEPEND=" + dev-libs/boost + expat? ( dev-libs/expat ) + !expat? ( dev-libs/libxml2 ) + ssl? ( dev-libs/openssl ) + zeroconf? ( + avahi? ( net-dns/avahi ) + !avahi? ( net-misc/mDNSResponder ) + ) + net-dns/libidn + sys-libs/zlib + qt4? ( + x11-libs/libXScrnSaver + x11-libs/qt-gui + x11-libs/qt-webkit + ) +" +DEPEND="${RDEPEND} + doc? ( + >=app-text/docbook-xsl-stylesheets-1.75 + >=app-text/docbook-xml-dtd-4.5 + dev-libs/libxslt + ) +" +scons_targets=() +set_scons_targets() { + scons_targets=( Swiften ) + use qt4 && scons_targets+=( Swift ) + use avahi && scons_targets+=( Slimber ) + use examples && scons_targets+=( + Documentation/SwiftenDevelopersGuide/Examples + Limber + Sluift + Swiften/Config + Swiften/Examples + Swiften/QA + SwifTools + ) +} + +scons_vars=() +set_scons_vars() { + scons_vars=( + V=1 + allow_warnings=1 + cc="$(tc-getCC)" + cxx="$(tc-getCXX)" + ccflags="${CXXFLAGS}" + linkflags="${LDFLAGS}" + qt="${S}/local-qt" + openssl="${EPREFIX}/usr" + docbook_xsl="${EPREFIX}/usr/share/sgml/docbook/xsl-stylesheets" + docbook_xml="${EPREFIX}/usr/share/sgml/docbook/xml-dtd-4.5" + $(use_scons debug) + $(use !static-libs && use_scons !static-libs swiften_dll) + $(use_scons ssl openssl) + $(use zeroconf && use_scons !avahi bonjour) + ) +} + +src_prepare() { + mkdir local-qt + ln -s "${EPREFIX}"/usr/$(get_libdir)/qt4 local-qt/lib || die + ln -s "${EPREFIX}"/usr/include/qt4 local-qt/include || die + + cd 3rdParty || die + # TODO CppUnit, Lua + rm -rf Boost CAres DocBook Expat LCov LibIDN OpenSSL SCons SQLite ZLib || die + cd .. || die + + for x in ${LANGS}; do + if use !linguas_${x}; then + rm -f Swift/Translations/swift_${x}.ts || die + fi + done + + # Richard H. (2012-03-29): SCons ignores us, + # just delete unneeded stuff! + if use !avahi; then + rm -rf Slumber || die + fi + + if use !examples; then + rm -rf Documentation/SwiftenDevelopersGuide/Examples \ + Limber \ + Slimber \ + Sluift \ + Swiften/Examples \ + Swiften/QA \ + Swiftob || die + fi + + if use !qt4; then + rm -rf Swift || die + fi + + sed -i BuildTools/SCons/Tools/qt4.py \ + -e "s/linux2/linux${KV_MAJOR}/" \ + || die +} + +src_compile() { + set_scons_targets + set_scons_vars + + escons "${scons_vars[@]}" "${scons_targets[@]}" +} + +src_test() { + set_scons_targets + set_scons_vars + + escons "${scons_vars[@]}" test=unit QA +} + +src_install() { + set_scons_targets + set_scons_vars + + escons "${scons_vars[@]}" SWIFT_INSTALLDIR="${D}/usr" SWIFTEN_INSTALLDIR="${D}/usr" "${D}" "${scons_targets[@]}" + + if use avahi ; then + newbin Slimber/Qt/slimber slimber-qt + newbin Slimber/CLI/slimber slimber-cli + fi + + if use examples ; then + for i in EchoBot{1,2,3,4,5,6} EchoComponent ; do + newbin "Documentation/SwiftenDevelopersGuide/Examples/EchoBot/${i}" "${PN}-${i}" + done + + dobin Limber/limber + dobin Sluift/sluift + dobin Swiften/Config/swiften-config + + for i in BenchTool ConnectivityTest LinkLocalTool ParserTester SendFile SendMessage ; do + newbin "Swiften/Examples/${i}/${i}" "${PN}-${i}" + done + newbin Swiften/Examples/SendFile/ReceiveFile "${PN}-ReceiveFile" + use avahi && dobin Swiften/Examples/LinkLocalTool/LinkLocalTool + + for i in ClientTest NetworkTest StorageTest TLSTest ; do + newbin "Swiften/QA/${i}/${i}" "${PN}-${i}" + done + + newbin SwifTools/Idle/IdleQuerierTest/IdleQuerierTest ${PN}-IdleQuerierTest + fi + + use doc && dohtml "Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.html" +}