Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-irc/inspircd/, net-irc/inspircd/files/
Date: Sat, 25 Feb 2017 23:54:24
Message-Id: 1488066830.e9a23e95ba54e79e60cb598b0e2d93a8f3098e07.whissi@gentoo
1 commit: e9a23e95ba54e79e60cb598b0e2d93a8f3098e07
2 Author: Andrew Wilcox <awilfox.gentoo <AT> foxkit <DOT> us>
3 AuthorDate: Sat Feb 25 23:50:50 2017 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Sat Feb 25 23:53:50 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9a23e95
7
8 net-irc/inspircd: Bump to v2.0.23 (bug #593290)
9
10 Notable ebuild changes:
11 =======================
12 - Rewritten runscript
13
14 Closes: https://github.com/gentoo/gentoo/pull/4035
15 Gentoo-Bug: https://bugs.gentoo.org/593290
16
17 Package-Manager: Portage-2.3.3, Repoman-2.3.1
18 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
19
20 net-irc/inspircd/Manifest | 1 +
21 .../files/inspircd-2.0.23-fix-path-builds.patch | 253 +++++++++++++++++++++
22 net-irc/inspircd/files/inspircd-r2.initd | 49 ++++
23 net-irc/inspircd/files/inspircd.confd | 39 ++++
24 net-irc/inspircd/inspircd-2.0.23.ebuild | 107 +++++++++
25 5 files changed, 449 insertions(+)
26
27 diff --git a/net-irc/inspircd/Manifest b/net-irc/inspircd/Manifest
28 index 7541fdfbdd..7f04f91464 100644
29 --- a/net-irc/inspircd/Manifest
30 +++ b/net-irc/inspircd/Manifest
31 @@ -1,2 +1,3 @@
32 DIST inspircd-2.0.20.tar.gz 728970 SHA256 5156e2da5da4cfa377705ecd633aee41cdcd785d12627497d55cab5f70dd686f SHA512 85463f7df379e5c7e190b4cc7ea67a80d5c4e5799c68abf2329e8204239dbed7258d11c97e5138039a8002f18ca0bd75ffc5c362b02cc27170adaf8cda6acc7e WHIRLPOOL 7eb8d3ca23c203431794ac18e65037e696638f54a0df8f2efbf590e87017e31f7a4f37926352cb4a613e6d58fb0d76ebf44a78ca6d39d093d66b46b57330b541
33 DIST inspircd-2.0.21.tar.gz 730417 SHA256 bc2f861d754754a108797699319186130ef7d909204eb56ab2c3b1ae80c9d6c5 SHA512 28f38e8195d5cb6e7c7f2c4bcff2f0fcc13fb462a26975269faf899af7228c3ece2002ee819d0d5e2242ae5687a8e198e82cace8b3ff75521a44f12ac29ade0f WHIRLPOOL e1d7ee44a4900a26c2307d431fd62e0b13a8ba56388fa3e2edb10754c6bea5426625b4008162adc203c984e36b9e99ed656622bc21aae4195574514edc9b678e
34 +DIST inspircd-2.0.23.tar.gz 731695 SHA256 522b31fc80e8fd90b66837bf50f8a941233709d5b1fc9c0b3c47a413fb69f162 SHA512 93a3dab04e797cfde158de8c2e959d1bb5df115aa3fe5a4066cdf9f56cb0c548fd2664a12d61bf2dbdb45549577974be99a0d6ffc6114c72cf0697f5ca4f85bb WHIRLPOOL 9ac288624835e8cf97cf3634df47c4310c6929691b4bfb39139cb0a6c45a7503e1c73addf7f6eaef03d77e52d53a78f8efd648ddb3b5ee9023c4bdee045ac4a1
35
36 diff --git a/net-irc/inspircd/files/inspircd-2.0.23-fix-path-builds.patch b/net-irc/inspircd/files/inspircd-2.0.23-fix-path-builds.patch
37 new file mode 100644
38 index 0000000000..debf62a15f
39 --- /dev/null
40 +++ b/net-irc/inspircd/files/inspircd-2.0.23-fix-path-builds.patch
41 @@ -0,0 +1,253 @@
42 +diff -Nuar a/docs/conf/inspircd.conf.example b/docs/conf/inspircd.conf.example
43 +--- a/docs/conf/inspircd.conf.example 2015-05-10 00:24:10.000000000 -0500
44 ++++ b/docs/conf/inspircd.conf.example 2015-07-27 05:22:26.107849785 -0500
45 +@@ -412,11 +412,11 @@
46 +
47 + # This file has all the information about oper classes, types and o:lines.
48 + # You *MUST* edit it.
49 +-<include file="conf/examples/opers.conf.example">
50 ++<include file="/etc/inspircd/opers.conf.example">
51 +
52 + # This file has all the information about server links and ulined servers.
53 + # You *MUST* edit it if you intend to link servers.
54 +-<include file="conf/examples/links.conf.example">
55 ++<include file="/etc/inspircd/links.conf.example">
56 +
57 + #-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-#
58 + # #
59 +@@ -426,7 +426,8 @@
60 + # motd - displayed on connect and when a user executes /MOTD
61 + # rules - displayed when the user executes /RULES
62 + # Modules can also define their own files
63 +-<files motd="conf/examples/motd.txt.example" rules="conf/examples/rules.txt.example">
64 ++<files motd="/etc/inspircd/motd.txt.example"
65 ++ rules="/etc/inspircd/rules.txt.example">
66 +
67 + # Example of an executable file include. Note this will be read on rehash,
68 + # not when the command is run.
69 +@@ -472,7 +473,7 @@
70 + # the default of 'inspircd.pid' is used. #
71 + # #
72 +
73 +-#<pid file="/path/to/inspircd.pid">
74 ++<pid file="/var/run/inspircd/inspircd.pid">
75 +
76 + #-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
77 + # #
78 +@@ -953,7 +954,7 @@
79 + # provide almost all the features of InspIRCd. :) #
80 + # #
81 + # The default does nothing -- we include it for simplicity for you. #
82 +-<include file="conf/examples/modules.conf.example">
83 ++<include file="/etc/inspircd/modules.conf.example">
84 +
85 + # Here are some pre-built modules.conf files that closely match the
86 + # default configurations of some popular IRCd's. You still may want to
87 +@@ -965,10 +966,10 @@
88 + # recommended that you make your own modules file based on modules.conf.example.
89 +
90 + # Settings similar to UnrealIRCd defaults.
91 +-#<include file="conf/examples/modules/unrealircd.conf.example">
92 ++#<include file="/etc/inspircd/modules/unrealircd.conf.example">
93 +
94 + # Settings similar to Charybdis IRCd defaults.
95 +-#<include file="conf/examples/modules/charybdis.conf.example">
96 ++#<include file="/etc/inspircd/modules/charybdis.conf.example">
97 +
98 +
99 + #########################################################################
100 +diff -Nuar a/docs/conf/modules.conf.example b/docs/conf/modules.conf.example
101 +--- a/docs/conf/modules.conf.example 2016-02-28 17:38:30.492335461 -0600
102 ++++ b/docs/conf/modules.conf.example 2016-02-28 17:39:20.068559846 -0600
103 +@@ -315,7 +315,7 @@
104 + # specify some censor tags. See also: #
105 + # http://wiki.inspircd.org/Modules/censor #
106 + #
107 +-#<include file="conf/examples/censor.conf.example">
108 ++#<include file="/etc/inspircd/censor.conf.example">
109 +
110 + #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
111 + # CGI:IRC module: Adds support for automatic host changing in CGI:IRC
112 +@@ -778,7 +778,7 @@
113 + # specify below the path to the filter.conf file, or define some #
114 + # <filter> tags. #
115 + # #
116 +-#<include file="conf/examples/filter.conf.example">
117 ++#<include file="/etc/inspircd/filter.conf.example">
118 +
119 + #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
120 + # Gecos ban: Implements extended ban 'r', which stops anyone matching
121 +@@ -834,7 +834,7 @@
122 + # #
123 + # If you specify to use the m_helpop.so module, then specify below #
124 + # the path to the helpop.conf file. #
125 +-#<include file="conf/examples/inspircd.helpop-full.example">
126 ++#<include file="/etc/inspircd/inspircd.helpop-full.example">
127 +
128 + #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
129 + # Hide chans module: Allows users to hide their channels list from non-
130 +@@ -1284,7 +1284,7 @@
131 + # Read the comment above <connect:allowmotdcolors> in #
132 + # inspircd.conf.example for details. #
133 + # #
134 +-#<opermotd file="conf/examples/opermotd.txt.example" onoper="yes" processcolors="false">
135 ++#<opermotd file="/etc/inspircd/opermotd.txt.example" onoper="yes" processcolors="false">
136 +
137 + #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
138 + # Override module: Adds support for oper override.
139 +diff -Nuar a/make/template/main.mk b/make/template/main.mk
140 +--- a/make/template/main.mk 2015-05-10 00:24:10.000000000 -0500
141 ++++ b/make/template/main.mk 2015-07-27 05:22:26.107849785 -0500
142 +@@ -34,7 +34,7 @@
143 + SYSTEM = @SYSTEM@
144 + BUILDPATH = @BUILD_DIR@
145 + SOCKETENGINE = @SOCKETENGINE@
146 +-CXXFLAGS = -pipe -fPIC -DPIC
147 ++MYCXXFLAGS = -pipe -fPIC -DPIC
148 + LDLIBS = -pthread -lstdc++
149 + LDFLAGS =
150 + CORELDFLAGS = -rdynamic -L. $(LDFLAGS)
151 +@@ -51,9 +51,9 @@
152 + INSTMODE_LIB = 0644
153 +
154 + @IFEQ $(CC) icpc
155 +- CXXFLAGS += -Wshadow
156 ++ MYCXXFLAGS += -Wshadow
157 + @ELSE
158 +- CXXFLAGS += -pedantic -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall
159 ++ MYCXXFLAGS += -pedantic -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall
160 + @ENDIF
161 +
162 +
163 +@@ -75,46 +75,46 @@
164 + INSTALL = ginstall
165 + @ENDIF
166 + @IFEQ $(SYSTEM) darwin
167 +- CXXFLAGS += -DDARWIN -frtti
168 ++ MYCXXFLAGS += -DDARWIN -frtti
169 + LDLIBS += -ldl
170 + CORELDFLAGS = -dynamic -bind_at_load -L. $(LDFLAGS)
171 + PICLDFLAGS = -fPIC -shared -twolevel_namespace -undefined dynamic_lookup $(LDFLAGS)
172 + @ENDIF
173 + @IFEQ $(SYSTEM) interix
174 +- CXXFLAGS += -D_ALL_SOURCE -I/usr/local/include
175 ++ MYCXXFLAGS += -D_ALL_SOURCE -I/usr/local/include
176 + @ENDIF
177 +
178 +-@IFNDEF D
179 +- D=0
180 ++@IFNDEF DEBUGLEVEL
181 ++ DEBUGLEVEL=0
182 + @ENDIF
183 +
184 + GCC6=@GCC6@
185 + @IFEQ $(GCC6) true
186 +- CXXFLAGS += -fno-delete-null-pointer-checks
187 ++ MYCXXFLAGS += -fno-delete-null-pointer-checks
188 + @ENDIF
189 +
190 + DBGOK=0
191 +-@IFEQ $(D) 0
192 +- CXXFLAGS += -O2
193 ++@IFEQ $(DEBUGLEVEL) 0
194 ++ MYCXXFLAGS += -O2
195 + @IFEQ $(CC) g++
196 +- CXXFLAGS += -g1
197 ++ MYCXXFLAGS += -g1
198 + @ENDIF
199 + HEADER = std-header
200 + DBGOK=1
201 + @ENDIF
202 +-@IFEQ $(D) 1
203 +- CXXFLAGS += -O0 -g3 -Werror
204 ++@IFEQ $(DEBUGLEVEL) 1
205 ++ MYCXXFLAGS += -O0 -g3 -Werror
206 + HEADER = debug-header
207 + DBGOK=1
208 + @ENDIF
209 +-@IFEQ $(D) 2
210 +- CXXFLAGS += -O2 -g3
211 ++@IFEQ $(DEBUGLEVEL) 2
212 ++ MYCXXFLAGS += -O2 -g3
213 + HEADER = debug-header
214 + DBGOK=1
215 + @ENDIF
216 + FOOTER = finishmessage
217 +
218 +-CXXFLAGS += -Iinclude
219 ++MYCXXFLAGS += -Iinclude
220 +
221 + @GNU_ONLY MAKEFLAGS += --no-print-directory
222 +
223 +@@ -134,10 +134,11 @@
224 + @ENDIF
225 +
226 + @IFDEF PURE_STATIC
227 +- CXXFLAGS += -DPURE_STATIC
228 ++ MYCXXFLAGS += -DPURE_STATIC
229 + @ENDIF
230 +
231 +-@DO_EXPORT RUNCC RUNLD CXXFLAGS LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORELDFLAGS
232 ++MYCXXFLAGS += $(CXXFLAGS)
233 ++@DO_EXPORT RUNCC RUNLD MYCXXFLAGS LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORELDFLAGS
234 + @DO_EXPORT SOURCEPATH BUILDPATH PURE_STATIC SPLIT_CC
235 +
236 + # Default target
237 +@@ -150,10 +151,10 @@
238 + @GNU_ONLY TARGET = modules/$(M:.so=).so
239 + @ENDIF
240 +
241 +-@IFDEF T
242 ++@IFDEF TGT
243 + HEADER =
244 + FOOTER = target
245 +- TARGET = $(T)
246 ++ TARGET = $(TGT)
247 + @ENDIF
248 +
249 + @IFEQ $(DBGOK) 0
250 +@@ -228,8 +229,8 @@
251 + @-$(INSTALL) -d -o $(INSTUID) -m $(INSTMODE_DIR) $(BASE)/data
252 + @-$(INSTALL) -d -o $(INSTUID) -m $(INSTMODE_DIR) $(BASE)/logs
253 + @-$(INSTALL) -d -m $(INSTMODE_DIR) $(BINPATH)
254 +- @-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/examples/aliases
255 +- @-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/examples/modules
256 ++ @-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/aliases
257 ++ @-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/modules
258 + @-$(INSTALL) -d -m $(INSTMODE_DIR) $(MODPATH)
259 + [ $(BUILDPATH)/bin/ -ef $(BINPATH) ] || $(INSTALL) -m $(INSTMODE_BIN) $(BUILDPATH)/bin/inspircd $(BINPATH)
260 + @IFNDEF PURE_STATIC
261 +@@ -237,9 +238,9 @@
262 + @ENDIF
263 + -$(INSTALL) -m $(INSTMODE_BIN) @STARTSCRIPT@ $(BASE) 2>/dev/null
264 + -$(INSTALL) -m $(INSTMODE_LIB) tools/gdbargs $(BASE)/.gdbargs 2>/dev/null
265 +- -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/*.example $(CONPATH)/examples
266 +- -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/aliases/*.example $(CONPATH)/examples/aliases
267 +- -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/modules/*.example $(CONPATH)/examples/modules
268 ++ -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/*.example $(CONPATH)
269 ++ -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/aliases/*.example $(CONPATH)/aliases
270 ++ -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/modules/*.example $(CONPATH)/modules
271 + @echo ""
272 + @echo "*************************************"
273 + @echo "* INSTALL COMPLETE! *"
274 +@@ -252,7 +253,7 @@
275 + @echo ' Data:' $(DATPATH)
276 + @echo 'To start the ircd, run:' $(BASE)/inspircd start
277 + @echo 'Remember to create your config file:' $(CONPATH)/inspircd.conf
278 +- @echo 'Examples are available at:' $(CONPATH)/examples/
279 ++ @echo 'Examples are available at:' $(CONPATH)
280 +
281 + @GNU_ONLY RCS_FILES = $(wildcard .git/index src/version.sh)
282 + @BSD_ONLY RCS_FILES = src/version.sh
283 +diff -Nuar a/make/unit-cc.pl b/make/unit-cc.pl
284 +--- a/make/unit-cc.pl 2015-05-10 00:24:10.000000000 -0500
285 ++++ b/make/unit-cc.pl 2015-07-27 05:22:26.107849785 -0500
286 +@@ -113,7 +113,7 @@
287 + my $libs = '';
288 + my $binary = $ENV{RUNCC};
289 + if ($do_compile) {
290 +- $flags = $ENV{CXXFLAGS};
291 ++ $flags = $ENV{MYCXXFLAGS};
292 + $flags =~ s/ -pedantic// if nopedantic($file);
293 + $flags .= ' ' . getcompilerflags($file);
294 +
295
296 diff --git a/net-irc/inspircd/files/inspircd-r2.initd b/net-irc/inspircd/files/inspircd-r2.initd
297 new file mode 100644
298 index 0000000000..3b9528b48e
299 --- /dev/null
300 +++ b/net-irc/inspircd/files/inspircd-r2.initd
301 @@ -0,0 +1,49 @@
302 +#!/sbin/openrc-run
303 +# Copyright 1999-2017 Gentoo Foundation
304 +# Distributed under the terms of the GNU General Public License v2
305 +# $Id$
306 +
307 +INSPIRCD_USER=${INSPIRCD_USER:-"inspircd"}
308 +INSPIRCD_GROUP=${INSPIRCD_GROUP:-"inspircd"}
309 +INSPIRCD_CONFIGFILE=${INSPIRCD_CONFIGFILE:-"/etc/inspircd/inspircd.conf"}
310 +INSPIRCD_LOGFILE=${INSPIRCD_LOGFILE:-"/var/log/inspircd/ircd.log"}
311 +INSPIRCD_PIDFILE=${INSPIRCD_PIDFILE:-"/run/inspircd/inspircd.pid"}
312 +INSPIRCD_SSDARGS=${INSPIRCD_SSDARGS:-"--quiet --user \"${INSPIRCD_USER}\" --wait 1000"}
313 +INSPIRCD_TERMTIMEOUT=${INSPIRCD_TERMTIMEOUT:-"TERM/25/KILL/5"}
314 +INSPIRCD_OPTS=${INSPIRCD_OPTS:-""}
315 +
316 +command="/usr/bin/inspircd"
317 +command_args="${INSPIRCD_OPTS} --config \"${INSPIRCD_CONFIGFILE}\" --logfile \"${INSPIRCD_LOGFILE}\""
318 +start_stop_daemon_args="${INSPIRCD_SSDARGS}"
319 +pidfile="${INSPIRCD_PIDFILE}"
320 +retry="${INSPIRCD_TERMTIMEOUT}"
321 +
322 +required_files="${INSPIRCD_CONFIGFILE}"
323 +
324 +name="InspIRCd"
325 +
326 +description="InspIRCd is a modular Internet Relay Chat (IRC) server."
327 +
328 +extra_commands="version"
329 +extra_started_commands="rehash"
330 +
331 +depend() {
332 + use dns
333 + provide ircd
334 +}
335 +
336 +start_pre() {
337 + checkpath --directory --mode 0750 --owner ${INSPIRCD_USER}:${INSPIRCD_GROUP} "$(dirname "${INSPIRCD_PIDFILE}")"
338 +}
339 +
340 +rehash() {
341 + ebegin "Rehashing InspIRCd"
342 + start-stop-daemon --signal HUP --pidfile "${pidfile}"
343 + eend $?
344 +}
345 +
346 +version() {
347 + ebegin "Retrieve InspIRCd version"
348 + ${command} --version
349 + eend $?
350 +}
351
352 diff --git a/net-irc/inspircd/files/inspircd.confd b/net-irc/inspircd/files/inspircd.confd
353 new file mode 100644
354 index 0000000000..d24ad29d4d
355 --- /dev/null
356 +++ b/net-irc/inspircd/files/inspircd.confd
357 @@ -0,0 +1,39 @@
358 +# Distributed under the terms of the GNU General Public License v2
359 +# $Id$
360 +
361 +# Location of configuration file. Modify if you don't like the standard
362 +# one.
363 +#
364 +#INSPIRCD_CONFIGFILE="/etc/inspircd/inspircd.conf"
365 +
366 +# Location of log file. Modify if you don't like the standard
367 +# one.
368 +#
369 +#INSPIRCD_LOGFILE="/var/log/inspircd/ircd.log"
370 +
371 +# File used to store the PID file. Usually you won't need to touch it.
372 +# If you are changing PID file do not forget to set new PID file in
373 +# INSPIRCD_CONFIGFILE as well.
374 +#
375 +#INSPIRCD_PIDFILE="/run/inspircd/inspircd.pid"
376 +
377 +# User to run InspIRCd as
378 +#
379 +#INSPIRCD_USER="inspircd"
380 +#INSPIRCD_GROUP="inspircd"
381 +
382 +# You can use this configuration option to pass additional options to the
383 +# start-stop-daemon, see start-stop-daemon(8) for more details.
384 +# Per default we start InspIRCd without any output (quiet)
385 +# as user $INSPIRCD_USER and wait 1000ms after we have started the service
386 +# to ensure that the daemon is really up and running.
387 +#INSPIRCD_SSDARGS="--quiet --user \"${INSPIRCD_USER}\" --wait 1000"
388 +
389 +# The termination timeout (start-stop-daemon parameter "retry") ensures
390 +# that the service will be terminated within a given time (25 + 5 seconds
391 +# per default) when you are stopping the service.
392 +#INSPIRCD_TERMTIMEOUT="TERM/25/KILL/5"
393 +
394 +# Options to collectd
395 +# See `/usr/bin/inspircd --help` for more details
396 +#INSPIRCD_OPTS=""
397
398 diff --git a/net-irc/inspircd/inspircd-2.0.23.ebuild b/net-irc/inspircd/inspircd-2.0.23.ebuild
399 new file mode 100644
400 index 0000000000..6f8c693048
401 --- /dev/null
402 +++ b/net-irc/inspircd/inspircd-2.0.23.ebuild
403 @@ -0,0 +1,107 @@
404 +# Copyright 1999-2017 Gentoo Foundation
405 +# Distributed under the terms of the GNU General Public License v2
406 +# $Id$
407 +
408 +EAPI="6"
409 +
410 +inherit toolchain-funcs user
411 +
412 +DESCRIPTION="Inspire IRCd - The Stable, High-Performance Modular IRCd"
413 +HOMEPAGE="https://inspircd.github.com/"
414 +SRC_URI="https://github.com/inspircd/inspircd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
415 +
416 +LICENSE="GPL-2"
417 +SLOT="0"
418 +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
419 +IUSE="geoip gnutls ipv6 ldap mysql pcre posix postgres sqlite ssl tre"
420 +
421 +RDEPEND="
422 + dev-lang/perl
423 + ssl? ( dev-libs/openssl:= )
424 + geoip? ( dev-libs/geoip )
425 + gnutls? ( net-libs/gnutls:= dev-libs/libgcrypt:0 )
426 + ldap? ( net-nds/openldap )
427 + mysql? ( virtual/mysql )
428 + postgres? ( dev-db/postgresql:= )
429 + pcre? ( dev-libs/libpcre )
430 + sqlite? ( >=dev-db/sqlite-3.0 )
431 + tre? ( dev-libs/tre )"
432 +DEPEND="${RDEPEND}"
433 +
434 +PATCHES=( "${FILESDIR}"/${PN}-2.0.23-fix-path-builds.patch )
435 +
436 +pkg_setup() {
437 + enewgroup ${PN}
438 + enewuser ${PN} -1 -1 -1 ${PN}
439 +}
440 +
441 +src_prepare() {
442 + # Patch the inspircd launcher with the inspircd user
443 + sed -i -e "s/@UID@/${PN}/" "${S}/make/template/${PN}" || die
444 +
445 + default_src_prepare
446 +}
447 +
448 +src_configure() {
449 + local extras=""
450 +
451 + use geoip && extras="${extras}m_geoip.cpp,"
452 + use gnutls && extras="${extras}m_ssl_gnutls.cpp,"
453 + use ldap && extras="${extras}m_ldapauth.cpp,m_ldapoper.cpp,"
454 + use mysql && extras="${extras}m_mysql.cpp,"
455 + use pcre && extras="${extras}m_regex_pcre.cpp,"
456 + use posix && extras="${extras}m_regex_posix.cpp,"
457 + use postgres && extras="${extras}m_pgsql.cpp,"
458 + use sqlite && extras="${extras}m_sqlite3.cpp,"
459 + use ssl && extras="${extras}m_ssl_openssl.cpp,"
460 + use tre && extras="${extras}m_regex_tre.cpp,"
461 +
462 + if [[ -n "${extras}" ]]; then
463 + econf --disable-interactive --enable-extras=${extras%,}
464 + fi
465 +
466 + econf \
467 + --with-cc="$(tc-getCXX)" \
468 + --disable-interactive \
469 + --prefix="/usr/$(get_libdir)/${PN}" \
470 + --config-dir="/etc/${PN}" \
471 + --data-dir="/var/lib/${PN}/data" \
472 + --log-dir="/var/log/${PN}" \
473 + --binary-dir="/usr/bin" \
474 + --module-dir="/usr/$(get_libdir)/${PN}/modules" \
475 + $(usex ipv6 '' '--disable-ipv6') \
476 + $(usex gnutls '--enable-gnutls' '') \
477 + $(usex ssl '--enable-openssl' '')
478 +}
479 +
480 +src_compile() {
481 + emake V=1 LDFLAGS="${LDFLAGS}" CXXFLAGS="${CXXFLAGS}"
482 +}
483 +
484 +src_install() {
485 + emake INSTUID=${PN} DESTDIR="${D%/}" install
486 +
487 + insinto "/usr/include/${PN}"
488 + doins -r include/.
489 +
490 + diropts -o"${PN}" -g"${PN}" -m0700
491 + dodir "/var/lib/${PN}"
492 + dodir "/var/lib/${PN}/data"
493 +
494 + newinitd "${FILESDIR}/${PN}-r2.initd" "${PN}"
495 + newconfd "${FILESDIR}/${PN}.confd" "${PN}"
496 +
497 + keepdir "/var/log/${PN}"
498 +}
499 +
500 +pkg_postinst() {
501 + if [[ -z "${REPLACING_VERSIONS}" ]]; then
502 + # This is a new installation
503 + elog "Before starting ${PN} the first time, you should create"
504 + elog "the /etc/${PN}/${PN}.conf file."
505 + elog "You can find example configuration files under /etc/${PN}"
506 + elog "Read the ${PN}.conf.example file carefully before "
507 + elog "(re)starting the service."
508 + elog
509 + fi
510 +}