blob: 060519ada52eb9d67745f43cc9e1d6e79f5cddaa (
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
132
133
134
|
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-irc/unrealircd/unrealircd-3.2.3-r1.ebuild,v 1.3 2005/06/29 16:08:58 swegener Exp $
inherit eutils ssl-cert versionator
MY_P=Unreal${PV}
DESCRIPTION="aimed to be an advanced (not easy) IRCd"
HOMEPAGE="http://www.unrealircd.com/"
SRC_URI="http://unrealircd.funny4chat.de/downloads/${MY_P}.tar.gz
http://www1.dnwt.net/unreal/${MY_P}.tar.gz
http://www.randumb.org/~unreal/${MY_P}.tar.gz"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86 ~ppc"
IUSE="hub ipv6 ssl zlib curl"
RDEPEND="ssl? ( dev-libs/openssl )
zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}
>=sys-apps/sed-4"
S="${WORKDIR}/Unreal$(get_version_component_range 1-2)"
pkg_setup() {
if use curl && ( ! built_with_use net-misc/curl ares || built_with_use net-misc/curl ipv6 )
then
eerror "You need net-misc/curl compiled with the ares USE flag to be able to use"
eerror "net-irc/unrealircd with the curl USE flag. Please note that ares support"
eerror "for net-misc/curl is incompatible with the ipv6 USE flag."
die "need net-misc/curl with ares support"
fi
enewuser unrealircd
}
src_unpack() {
unpack ${A}
cd ${S}
sed -i \
-e "s:ircd\.pid:/var/run/unrealircd/ircd.pid:" \
-e "s:ircd\.log:/var/log/unrealircd/ircd.log:" \
-e "s:debug\.log:/var/log/unrealircd/debug.log:" \
-e "s:ircd\.tune:/var/lib/unrealircd/ircd.tune:" \
include/config.h
}
src_compile() {
local myconf=""
use curl && myconf="${myconf} --enable-libcurl=/usr"
use ipv6 && myconf="${myconf} --enable-inet6"
use zlib && myconf="${myconf} --enable-ziplinks"
use hub && myconf="${myconf} --enable-hub"
use ssl && myconf="${myconf} --enable-ssl"
econf \
--with-listen=5 \
--with-dpath=${D}/etc/unrealircd \
--with-spath=/usr/bin/unrealircd \
--with-nick-history=2000 \
--with-sendq=3000000 \
--with-bufferpool=18 \
--with-hostname=$(hostname -f) \
--with-permissions=0600 \
--with-fd-setsize=1024 \
--enable-dynamic-linking \
--enable-prefixaq \
${myconf} \
|| die "econf failed"
sed -i \
-e "s:${D}::" \
include/setup.h \
ircdcron/ircdchk
emake IRCDDIR=/etc/unrealircd || die "emake failed"
}
src_install() {
keepdir /var/{lib,log,run}/unrealircd || die "keepdir failed"
newbin src/ircd unrealircd || die "newbin failed"
exeinto /usr/lib/unrealircd/modules
doexe src/modules/*.so || die "doexe failed"
dodir /etc/unrealircd || die "dodir failed"
dosym /var/lib/unrealircd /etc/unrealircd/tmp || die "dosym failed"
insinto /etc/unrealircd
doins {badwords.*,help,spamfilter,dccallow}.conf || die "doins failed"
newins doc/example.conf unrealircd.conf || die "newins failed"
use ssl \
&& docert server.cert \
&& dosym server.cert.key /etc/unrealircd/server.key.pem
insinto /etc/unrealircd/aliases
doins aliases/*.conf || die "doins failed"
insinto /etc/unrealircd/networks
doins networks/*.network || die "doins failed"
sed -i \
-e s:src/modules:/usr/lib/unrealircd/modules: \
-e s:ircd\\.log:/var/log/unrealircd/ircd.log: \
${D}/etc/unrealircd/unrealircd.conf
dodoc \
Changes Donation Unreal.nfo networks/makenet \
ircdcron/{ircd.cron,ircdchk} \
|| die "dodoc failed"
dohtml doc/*.html || die "dohtml failed"
newinitd ${FILESDIR}/unrealircd.rc unrealircd || die "newinitd failed"
newconfd ${FILESDIR}/unrealircd.confd unrealircd || die "newconfd failed"
fperms 700 /etc/unrealircd
chown -R unrealircd ${D}/{etc,var/{lib,log,run}}/unrealircd
}
pkg_postinst() {
einfo
einfo "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
einfo
einfo "You can find example cron scripts here:"
einfo " /usr/share/doc/${PF}/ircd.cron.gz"
einfo " /usr/share/doc/${PF}/ircdchk.gz"
einfo
einfo "You can also use /etc/init.d/unrealircd to start at boot"
einfo
}
|