summaryrefslogtreecommitdiff
blob: e5b3f534284e51fdf7f510e33acb9b73dc1c4633 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI="2"
ESVN_REPO_URI="http://toxygen.net/svn/ekg2/trunk"

inherit multilib subversion

DESCRIPTION="Remote UI client for EKG2 instant messenger"
HOMEPAGE="http://www.ekg2.org"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS=""
IUSE="gnutls gpm gtk ncurses readline spell ssl static unicode"

RDEPEND="
	gtk? ( x11-libs/gtk+:2 )
	readline? ( sys-libs/readline )
	gnutls?	( net-libs/gnutls )
	!gnutls? ( ssl? ( dev-libs/openssl ) )
	ncurses? ( sys-libs/ncurses[unicode?]
		gpm? ( sys-libs/gpm )
		spell? ( app-text/aspell ) )"

DEPEND="dev-util/scons
	${RDEPEND}"

pkg_setup() {
	# ekg2-remote supports less frontends than ekg2 due to stripped down API

	if ! use gtk && ! use ncurses && ! use readline; then
		ewarn 'ekg2-remote is being compiled without any frontend, you should consider'
		ewarn 'enabling either ncurses, readline or gtk USEflag.'
	fi
}

use_plug() {
	use $1 && echo -n ,${2:-$1}
}

# Build comma-separated plugin list based on USE

build_plugin_list() {
	echo '@none' \
	$(use_plug gtk) \
	$(use_plug ncurses) \
	$(use_plug readline) \
		| tr -d '[[:space:]]'
}

# create DEPS list for plugin
# + means dep forced (fail if unavailable)
# - means dep disabled (don't even check for it)
# use:opt maps USEflag to specified opt

make_deps() {
	local flag fopt out

	echo -n " $1_DEPS="
	shift

	# loop over different opts
	while [ -n "$1" ]; do
		# parse use:opt, if no :opt specified fopt=flag
		flag=${1%:*}
		fopt=${1#*:}

		use ${flag} && out=+ || out=-
		echo -n ${out}${fopt}

		shift
		[ -n "$1" ] && echo -n ,
	done
}

# REMOTE_SSL option

make_rssl() {
	if use gnutls; then
		echo -n gnutls
	elif use openssl; then
		echo -n openssl
	else
		echo -n none
	fi
}

use_var() {
	echo -n $1= | tr a-z A-Z
	use $1 && echo -n 1 || echo -n 0
}

src_configure() {
	# HARDDEPS -> build should fail if some dep is unsatisfied
	# DISTNOTES -> are displayed with /version, helpful for upstream bug reports

	scons PLUGINS=$(build_plugin_list) REMOTE=only REMOTE_SSL=$(make_rssl) \
		$(use ncurses && make_deps NCURSES gpm spell:aspell) \
		HARDDEPS=1 SKIPCHECKS=1 $(use_var unicode) $(use_var static) \
		PREFIX=/usr LIBDIR="\$EPREFIX/$(get_libdir)" \
		PLUGINDIR='$LIBDIR/ekg2-remote/plugins' DOCDIR="\$DATAROOTDIR/doc/${PF}" \
		DISTNOTES="emdzientoo ebuild ${PVR}, USE=${USE}" \
		${MAKEOPTS} conf || die "scons conf failed"
}

src_compile() {
	# SKIPCONF -> no need to reconfigure

	scons SKIPCONF=1 ${MAKEOPTS} || die "scons failed"
}

src_install() {
	scons DESTDIR="${D}" ${MAKEOPTS} install || die "scons install failed"
}

pkg_postinst() {
	elog "EKG2 is still considered very experimental. Please do report all issues"
	elog "to mailing list ekg2-users@lists.ziew.org (you can write in English)."
	elog "Please do not file bugs to Gentoo Bugzilla."
	elog
	elog "Before reporting a bug, please check if it's reproducible and get"
	elog "complete backtrace of it. Even if you can't reproduce it, you may let us"
	elog "know that something like that happened."
	elog
	elog "How to get backtraces:"
	elog "	http://www.gentoo.org/proj/en/qa/backtraces.xml"
	elog
	elog "Thank you and have fun."
}