summaryrefslogtreecommitdiff
blob: f77260937a30608b2290f68ef874dbefbe30cce5 (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
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-text/dictd/dictd-1.10.11-r3.ebuild,v 1.11 2008/12/16 20:27:08 pva Exp $

inherit eutils autotools

DESCRIPTION="Dictionary Client/Server for the DICT protocol"
HOMEPAGE="http://www.dict.org/"
SRC_URI="mirror://sourceforge/dict/${P}.tar.gz"

SLOT="0"
# We install rfc so - ISOC-rfc
LICENSE="GPL-2 ISOC-rfc"
KEYWORDS="alpha amd64 ~hppa ia64 ~mips ppc ~ppc64 sparc x86"
IUSE="dbi judy"

# <gawk-3.1.6 makes tests fail.
DEPEND="sys-apps/coreutils
		sys-libs/zlib
		dbi? ( dev-db/libdbi )
		judy? ( dev-libs/judy )
		|| ( >=sys-apps/coreutils-6.10 sys-apps/mktemp )
		sys-apps/sed"
RDEPEND="${DEPEND}
		>=sys-apps/gawk-3.1.6"

pkg_setup() {
	enewgroup dictd
	enewuser dictd -1 -1 -1 dictd
}

src_unpack() {
	unpack ${A}
	cd "${S}"

	epatch "${FILESDIR}/dictd-1.10.11-colorit-nopp-fix.patch"
	epatch "${FILESDIR}/dictd-1.10.11-dictdplugin_popen-g++-4.3compile.patch"
	epatch "${FILESDIR}/dictd-1.10.11-dictd.8-man.patch"
	epatch "${FILESDIR}/dictd-1.10.11-dictl-konwert.patch"
	epatch "${FILESDIR}/dictd-1.10.11-dictd.c-alen-init.patch"
	epatch "${FILESDIR}/dictd-1.10.11-dictl-translit.patch"
	epatch "${FILESDIR}/dictd-1.10.11-automatic-plugins_build-failure.patch"
	eautoreconf
}

src_test() {
	if use ppc || use ppc64; then
		ewarn "Tests are known to fail on big-endian systems (ppc, ppc64)"
		ewarn "Skipping tests."
	else
		if ! hasq userpriv "${FEATURES}"; then
			# If dictd is run as root user (-userpriv) it drops its privileges to
			# dictd user and group. Give dictd group write access to test directory.
			chown :dictd "${WORKDIR}" "${S}/test"
			chmod 770 "${WORKDIR}" "${S}/test"
		fi
		emake test || die
	fi
}

src_compile() {
	# with-local-libmaa is needed because libmaa is not in the tree
	# because nothing in the whole wide world but dictd uses it.
	# There are no sources apart from those in dictd, no homepage, nothing.
	# Doesn't really make sense to split it off from dictd into its own package
	# and add that just for dictd.
	econf \
		$(use_with dbi) \
		$(use_with judy) \
		--sysconfdir=/etc/dict \
		--with-cflags="${CFLAGS}" \
		--with-local-libmaa
	emake || die "make failed"
}

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

	# Install docs
	dodoc README TODO ChangeLog ANNOUNCE NEWS || die "installing docs part 1 failed"
	dodoc doc/{dicf.ms,rfc.ms,rfc.sh,rfc2229.txt} || die "installing docs part 2 failed"
	dodoc doc/{security.doc,toc.ms} || die "installing docs part 3 failed"

	# conf files.
	insinto /etc/dict
	for f in dict.conf dictd.conf site.info colorit.conf; do
		doins "${FILESDIR}/1.10.11/${f}" || die "failed to install ${f}"
	done

	# startups for dictd
	newinitd "${FILESDIR}/1.10.11/dictd.initd" dictd || die "failed to install dictd.initd"
	newconfd "${FILESDIR}/1.10.11/dictd.confd" dictd || die "failed to install dictd.confd"
}

pkg_postinst() {
	echo
	elog "To start and use ${PN} you will have to emerge at least one dictionary from"
	elog "the app-dicts category with the package name starting with 'dictd-'."
	elog "To install all available dictionaries, emerge app-dicts/dictd-dicts."
	elog "${PN} will NOT start without at least one dictionary."
	echo
}