summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Phillip Brink <binki@gentoo.org>2011-06-27 23:55:00 +0000
committerNathan Phillip Brink <binki@gentoo.org>2011-06-27 23:55:00 +0000
commit063ad1d5776606d64824d2095eebcc398d0339a8 (patch)
treeb1e36554b2644d4ec271995979ab4f399365fb66 /net-irc
parentRespect LDFLAGS (bug #334709, patch thanks to Ross Smith) and update to EAPI 4. (diff)
downloadgentoo-2-063ad1d5776606d64824d2095eebcc398d0339a8.tar.gz
gentoo-2-063ad1d5776606d64824d2095eebcc398d0339a8.tar.bz2
gentoo-2-063ad1d5776606d64824d2095eebcc398d0339a8.zip
Bump to ircservices-5.1.24 with build on amd64 fixed, hopefully parallel make issues solved, LDFLAGS and -Wl,--as-needed support. Last upstream release (ircservices is discontinued upstream).
(Portage version: 2.2.0_alpha41-r1/cvs/Linux x86_64)
Diffstat (limited to 'net-irc')
-rw-r--r--net-irc/ircservices/ChangeLog17
-rw-r--r--net-irc/ircservices/files/ircservices-5.1.24-as-needed.patch17
-rw-r--r--net-irc/ircservices/files/ircservices-5.1.24-fd_set-amd64.patch236
-rw-r--r--net-irc/ircservices/files/ircservices-5.1.24-ircservices-chk-pidfile.patch22
-rw-r--r--net-irc/ircservices/files/ircservices-5.1.24-ldflags.patch12
-rw-r--r--net-irc/ircservices/files/ircservices-5.1.24-parallel-make.patch28
-rw-r--r--net-irc/ircservices/files/ircservices.confd11
-rw-r--r--net-irc/ircservices/files/ircservices.initd31
-rw-r--r--net-irc/ircservices/ircservices-5.1.24.ebuild96
9 files changed, 468 insertions, 2 deletions
diff --git a/net-irc/ircservices/ChangeLog b/net-irc/ircservices/ChangeLog
index 94acac775a92..ae51b2eb3b7c 100644
--- a/net-irc/ircservices/ChangeLog
+++ b/net-irc/ircservices/ChangeLog
@@ -1,6 +1,19 @@
# ChangeLog for net-irc/ircservices
-# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-irc/ircservices/ChangeLog,v 1.47 2009/12/28 19:01:34 nixnut Exp $
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircservices/ChangeLog,v 1.48 2011/06/27 23:55:00 binki Exp $
+
+*ircservices-5.1.24 (27 Jun 2011)
+
+ 27 Jun 2011; Nathan Phillip Brink <binki@gentoo.org>
+ +ircservices-5.1.24.ebuild, +files/ircservices-5.1.24-as-needed.patch,
+ +files/ircservices-5.1.24-fd_set-amd64.patch,
+ +files/ircservices-5.1.24-ircservices-chk-pidfile.patch,
+ +files/ircservices-5.1.24-ldflags.patch,
+ +files/ircservices-5.1.24-parallel-make.patch, +files/ircservices.confd,
+ +files/ircservices.initd:
+ Bump to ircservices-5.1.24 with build on amd64 fixed, hopefully parallel
+ make issues solved, LDFLAGS and -Wl,--as-needed support. Last upstream
+ release (ircservices is discontinued upstream).
28 Dec 2009; nixnut <nixnut@gentoo.org> ircservices-5.1.17.ebuild:
ppc stable #289539
diff --git a/net-irc/ircservices/files/ircservices-5.1.24-as-needed.patch b/net-irc/ircservices/files/ircservices-5.1.24-as-needed.patch
new file mode 100644
index 000000000000..b8b3668e1e39
--- /dev/null
+++ b/net-irc/ircservices/files/ircservices-5.1.24-as-needed.patch
@@ -0,0 +1,17 @@
+From: Nathan Phillip Brink <binki@gentoo.org>
+Date: 2011-06-22
+Subject: Fix missing $(LIBS) in the Makefiles where linking of modules
+ happens.
+
+diff -r 7c815ad6fa2e -r f195c349225a modules/Makerules
+--- a/modules/Makerules Wed Jun 22 00:14:22 2011 -0400
++++ b/modules/Makerules Wed Jun 22 13:32:24 2011 -0400
+@@ -104,7 +104,7 @@
+
+ # Compile one or more objects into a dynamic module.
+ $(TARGET).so: $(TARGET).o $(OBJECTS)
+- $(CC_SHARED) $(CFLAGS) $(LFLAGS) $^ -o $@
++ $(CC_SHARED) $(CFLAGS) $(LFLAGS) $^ -o $@ $(LIBS)
+
+ # Compile one or more objects into a static module and generate a symbol
+ # list. The .a file we create here is just a placeholder to show that
diff --git a/net-irc/ircservices/files/ircservices-5.1.24-fd_set-amd64.patch b/net-irc/ircservices/files/ircservices-5.1.24-fd_set-amd64.patch
new file mode 100644
index 000000000000..b15595d570a3
--- /dev/null
+++ b/net-irc/ircservices/files/ircservices-5.1.24-fd_set-amd64.patch
@@ -0,0 +1,236 @@
+From: Nathan Phillip Brink <binki@gentoo.org>
+Subject: Fix compilation on amd64 platform by using a different method
+ of fixing the printf() + size_t problem.
+
+The method used is to test if the `z' printf integer modifier works or
+not. If that works, use it. Otherwise, search for a normal integer
+type of similar length to size_t. Defines PRIdSIZE and PRIuSIZE in
+reminiscence of inttypes.h
+
+diff -r b323b647fe91 -r e10ae0e7b778 Makefile
+--- a/Makefile Tue Jun 21 00:42:59 2011 -0400
++++ b/Makefile Tue Jun 21 00:44:38 2011 -0400
+@@ -116,17 +116,17 @@
+
+ ifneq ($(STATIC_MODULES),)
+ modules: langstrs.h
+- @$(MAKE) -C modules all-static CFLAGS="$(CFLAGS)"
++ @$(MAKE) -C modules all-static CFLAGS='$(CFLAGS)'
+ else
+ modules: langstrs.h
+- @$(MAKE) -C modules all-dynamic CFLAGS="$(CFLAGS)"
++ @$(MAKE) -C modules all-dynamic CFLAGS='$(CFLAGS)'
+ endif
+
+ languages:
+- @$(MAKE) -C lang CFLAGS="$(CFLAGS)"
++ @$(MAKE) -C lang CFLAGS='$(CFLAGS)'
+
+ tools: langstrs.h services.h
+- @$(MAKE) -C tools CFLAGS="$(CFLAGS)"
++ @$(MAKE) -C tools CFLAGS='$(CFLAGS)'
+
+
+ # Catch any changes in compilation options at the top of this file or the
+diff -r b323b647fe91 -r e10ae0e7b778 configure
+--- a/configure Tue Jun 21 00:42:59 2011 -0400
++++ b/configure Tue Jun 21 00:44:38 2011 -0400
+@@ -271,6 +271,7 @@
+ SIZEOF_INT=
+ SIZEOF_LONG=
+ SIZEOF_PTR=
++SIZEOF_SIZE_T=
+ SIZEOF_TIME_T=
+ MAX_TIME_T=
+ SIZEOF_GID_T=bonkle
+@@ -1997,6 +1998,39 @@
+ fi
+ fi
+
++MODE="check_size_t "
++echo2 "Checking the size of size_t... "
++if [ "$SIZEOF_SIZE_T" ]; then
++ echo "(cached) `expr $SIZEOF_SIZE_T \* 8` bits"
++ log "cache supplied `expr $SIZEOF_SIZE_T \* 8` bits"
++else
++ cat >$CONFTMP/test.c <<EOT
++ #include <stdlib.h>
++ #include <stdio.h>
++ int main()
++ {
++ size_t a = 0;
++ printf("%d", sizeof(a));
++ return 0;
++ }
++EOT
++ if run $CC $CC_FLAGS $CONFTMP/test.c $CC_LIBS -o $CONFTMP/test; then
++ a="`$CONFTMP/test`"
++ log "test program output (sizeof(size_t)): $a"
++ if [ ! "$a" ]; then
++ echo "test program failed! Assuming `expr $SIZEOF_PTR \* 8` bits."
++ log "assuming `expr $SIZEOF_PTR \* 8` bits"
++ SIZEOF_SIZE_T=$SIZEOF_PTR
++ else
++ SIZEOF_SIZE_T="$a"
++ echo `expr $SIZEOF_SIZE_T \* 8` bits
++ log "`expr $SIZEOF_SIZE_T \* 8` bits"
++ fi
++ else
++ whoa_there
++ fi
++fi
++
+ MODE="check_time_t "
+ echo2 "Checking the size of time_t... "
+ if [ "$SIZEOF_TIME_T" -a "$MAX_TIME_T" ] ; then
+@@ -2135,6 +2169,53 @@
+ fi
+ fi
+
++MODE="check_PRIdSIZE "
++echo2 "Checking how to use size_t with printf... "
++if [ "$SIZE_T_FORMAT" ]; then
++ echo "(cached) $SIZE_T_FORMAT"
++ log "cache $SIZE_T_FORMAT"
++else
++ cat >$CONFTMP/test.c <<EOT
++ #include <stdlib.h>
++ #include <stdio.h>
++ int main()
++ {
++ size_t a = 26;
++ printf("%zu", a);
++ return 0;
++ }
++EOT
++ if run $CC $CC_FLAGS $CONFTMP/test.c $CC_LIBS -o $CONFTMP/test; then
++ a="`$CONFTMP/test`"
++ log "test program output printf(\"%zu\", (size_t)26): $a"
++ if [ "x$a" = "x26" ]; then
++ echo "can use %zu to print size_t (I love standards-compliance :-))."
++ log "can use %zu to print size_t (I love standards-compliance :-))."
++ CDEFS="$CDEFS -DPRIdSIZE=\\\"zd\\\" -DPRIuSIZE=\\\"zu\\\""
++ else
++ echo "test program indicated that runtime does not accept %zu for size_t."
++ log "test program indicated that runtime does not accept %zu for size_t."
++ if [ "x$SIZEOF_SIZE_T" = "x$SIZEOF_INT" ]; then
++ SIZE_MOD=
++ MATCHED=int
++ else
++ if [ "x$SIZEOF_SIZE_T" = "x$SIZEOF_LONG" ]; then
++ SIZE_MOD=l
++ MATCHED=long
++ else
++ SIZE_MOD=l
++ MATCHED="no known types"
++ fi
++ fi
++ echo "size_t's size matched $MATCHED, using %$SIZE_MOD""d to print size_t."
++ log "size_t's size matched $MATCHED, using %$SIZE_MOD""d to print size_t."
++ CDEFS="$CDEFS -DPRIdSIZE=\\\"$SIZE_MOD""d\\\" -DPRIuSIZE=\\\"$SIZE_MOD""u\\\""
++ fi
++ else
++ whoa_there
++ fi
++fi
++
+ ###########################################################################
+
+ # AIX workaround.
+diff -r b323b647fe91 -r e10ae0e7b778 defs.h
+--- a/defs.h Tue Jun 21 00:42:59 2011 -0400
++++ b/defs.h Tue Jun 21 00:44:38 2011 -0400
+@@ -224,11 +224,6 @@
+
+ /* Various generally useful macros. */
+
+-
+-/* Make sizeof() return an int regardless of compiler (avoids printf
+- * argument type warnings). */
+-#define sizeof(v) ((int)sizeof(v))
+-
+ /* Length of an array: */
+ #define lenof(a) (sizeof(a) / sizeof(*(a)))
+
+diff -r b323b647fe91 -r e10ae0e7b778 modules/Makefile
+--- a/modules/Makefile Tue Jun 21 00:42:59 2011 -0400
++++ b/modules/Makefile Tue Jun 21 00:44:38 2011 -0400
+@@ -18,7 +18,7 @@
+
+ all-dynamic:
+ @set -e ; for i in $(SUBDIRS) ; do \
+- $(MAKE) -C $$i $@ DIRNAME="$$i" CFLAGS="$(CFLAGS)" ; \
++ $(MAKE) -C $$i $@ DIRNAME="$$i" CFLAGS='$(CFLAGS)' ; \
+ if $(TEST_NT) ! -f .stamp -o "$$i/.stamp" -nt .stamp ; then \
+ echo "touch .stamp" ; \
+ touch .stamp ; \
+@@ -33,7 +33,7 @@
+ @echo '#include "modsyms.c"' >>modlist.c
+ @echo 'struct {const char *name; void *symlist;} modlist[] = {' >>modlist.c
+ @set -e ; for i in $(SUBDIRS) ; do \
+- $(MAKE) -C $$i $@ DIRNAME="$$i" CFLAGS="$(CFLAGS)" ; \
++ $(MAKE) -C $$i $@ DIRNAME="$$i" CFLAGS='$(CFLAGS)' ; \
+ cat $$i/.modext-*.h >>modext.h ; \
+ cat $$i/.modsyms-*.c >>modsyms.c ; \
+ cat $$i/.modlist-*.c >>modlist.c ; \
+diff -r b323b647fe91 -r e10ae0e7b778 modules/Makerules
+--- a/modules/Makerules Tue Jun 21 00:42:59 2011 -0400
++++ b/modules/Makerules Tue Jun 21 00:44:38 2011 -0400
+@@ -153,13 +153,13 @@
+ $(TARGET).o $(TARGET)_static.o: MODULE_CFLAGS += -DMODULE_MAIN_FILE
+ $(TARGET)_static.o: MODULE_CFLAGS += -D_this_module_ptr=_this_module_ptr_$(MODULE_ID) -Dmodule_version=module_version_$(MODULE_ID) -Dmodule_config=module_config_$(MODULE_ID) -Dinit_module=init_module_$(MODULE_ID) -Dexit_module=exit_module_$(MODULE_ID)
+ $(TARGET)_static.o: FRC
+- @$(MAKE) --no-print-directory $@ TARGET=$(@:_static.o=) INCLUDES2="$(INCLUDES-$(@:_static.o=.o))" CFLAGS="$(CFLAGS) $(MODULE_CFLAGS)" REALLY_COMPILE=2
++ @$(MAKE) --no-print-directory $@ TARGET=$(@:_static.o=) INCLUDES2="$(INCLUDES-$(@:_static.o=.o))" CFLAGS='$(CFLAGS) $(MODULE_CFLAGS)' REALLY_COMPILE=2
+ @if $(TEST_NT) ! -f .stamp -o "$@" -nt .stamp ; then \
+ echo "touch .stamp" ; \
+ touch .stamp ; \
+ fi
+ $(TARGET).o $(OBJECTS): FRC
+- @$(MAKE) --no-print-directory $@ TARGET=$(@:.o=) INCLUDES2="$(INCLUDES-$@)" CFLAGS="$(CFLAGS) $(MODULE_CFLAGS)" REALLY_COMPILE=2
++ @$(MAKE) --no-print-directory $@ TARGET=$(@:.o=) INCLUDES2="$(INCLUDES-$@)" CFLAGS='$(CFLAGS) $(MODULE_CFLAGS)' REALLY_COMPILE=2
+ @if $(TEST_NT) ! -f .stamp -o "$@" -nt .stamp ; then \
+ echo "touch .stamp" ; \
+ touch .stamp ; \
+diff -r b323b647fe91 -r e10ae0e7b778 tools/convert-cygnus.c
+--- a/tools/convert-cygnus.c Tue Jun 21 00:42:59 2011 -0400
++++ b/tools/convert-cygnus.c Tue Jun 21 00:44:38 2011 -0400
+@@ -245,7 +245,7 @@
+ break;
+ }
+ if (strlen(pass) > sizeof(ngi->pass)-1) {
+- fprintf(stderr, "%s:%d: Password for `%s' truncated to %d"
++ fprintf(stderr, "%s:%d: Password for `%s' truncated to %" PRIdSIZE
+ " characters\n", fname, line, ni->nick,
+ sizeof(ngi->pass)-1);
+ pass[sizeof(ngi->pass)-1] = 0;
+@@ -741,7 +741,7 @@
+ }
+ ci->founder = ni->nickgroup;
+ if (strlen(pass) > sizeof(ci->founderpass)-1) {
+- fprintf(stderr, "%s:%d: Password for `%s' truncated to %d"
++ fprintf(stderr, "%s:%d: Password for `%s' truncated to %" PRIdSIZE
+ " characters\n", fname, line, ci->name,
+ sizeof(ci->founderpass)-1);
+ pass[sizeof(ci->founderpass)-1] = 0;
+diff -r b323b647fe91 -r e10ae0e7b778 tools/convert-hybserv.c
+--- a/tools/convert-hybserv.c Tue Jun 21 00:42:59 2011 -0400
++++ b/tools/convert-hybserv.c Tue Jun 21 00:44:38 2011 -0400
+@@ -198,7 +198,7 @@
+ exit(1);
+ } else {
+ fprintf(stderr, "%s:%d: Password for `%s'"
+- " truncated to %d characters\n", fname,
++ " truncated to %" PRIdSIZE " characters\n", fname,
+ line, ni->nick,
+ sizeof(ngi->pass.password)-1);
+ }
+@@ -564,7 +564,7 @@
+ exit(1);
+ } else {
+ fprintf(stderr, "%s:%d: Password for `%s'"
+- " truncated to %d characters\n", fname,
++ " truncated to %" PRIdSIZE " characters\n", fname,
+ line, ci->name,
+ sizeof(ci->founderpass.password)-1);
+ }
diff --git a/net-irc/ircservices/files/ircservices-5.1.24-ircservices-chk-pidfile.patch b/net-irc/ircservices/files/ircservices-5.1.24-ircservices-chk-pidfile.patch
new file mode 100644
index 000000000000..b232e8c5e07a
--- /dev/null
+++ b/net-irc/ircservices/files/ircservices-5.1.24-ircservices-chk-pidfile.patch
@@ -0,0 +1,22 @@
+From: Nathan Phillip Brink <binki@gentoo.org>
+Date: 2011/06/15
+Subject: Use the same datadir/pidfile searching algorithm in
+ ircservices-chk as in ircservices to ensure consistent
+ results.
+
+--- a/tools/ircservices-chk.in
++++ b/tools/ircservices-chk.in
+@@ -21,10 +21,10 @@
+ fi
+
+ ok=
+-if [ -f "@DATDEST@/$PIDFILE" ] ; then
+- pid=`cat "@DATDEST@/$PIDFILE"`
++if ! cd "@DATDEST@" || [ -f "$PIDFILE" ] ; then
++ pid=`cat "$PIDFILE"`
+ if echo "0$pid" | grep -q '[^0-9]' ; then
+- rm -f "@DATDEST@/$PIDFILE"
++ rm -f "$PIDFILE"
+ elif kill -0 $pid ; then
+ ok=1
+ fi
diff --git a/net-irc/ircservices/files/ircservices-5.1.24-ldflags.patch b/net-irc/ircservices/files/ircservices-5.1.24-ldflags.patch
new file mode 100644
index 000000000000..b4041cd74a27
--- /dev/null
+++ b/net-irc/ircservices/files/ircservices-5.1.24-ldflags.patch
@@ -0,0 +1,12 @@
+diff -r e10ae0e7b778 modules/Makerules
+--- a/modules/Makerules Tue Jun 21 00:44:38 2011 -0400
++++ b/modules/Makerules Tue Jun 21 13:00:07 2011 -0400
+@@ -104,7 +104,7 @@
+
+ # Compile one or more objects into a dynamic module.
+ $(TARGET).so: $(TARGET).o $(OBJECTS)
+- $(CC_SHARED) $^ -o $@
++ $(CC_SHARED) $(CFLAGS) $(LFLAGS) $^ -o $@
+
+ # Compile one or more objects into a static module and generate a symbol
+ # list. The .a file we create here is just a placeholder to show that
diff --git a/net-irc/ircservices/files/ircservices-5.1.24-parallel-make.patch b/net-irc/ircservices/files/ircservices-5.1.24-parallel-make.patch
new file mode 100644
index 000000000000..910771adcdc5
--- /dev/null
+++ b/net-irc/ircservices/files/ircservices-5.1.24-parallel-make.patch
@@ -0,0 +1,28 @@
+From: Nathan Phillip Brink <binki@gentoo.org>
+Subject: Fix issues of langstrs.h not being built before modules and
+ tools are, hopefully fixing parallel make.
+
+diff -r ad64cfd2cacc -r b323b647fe91 Makefile
+--- a/Makefile Mon Jun 20 22:29:07 2011 -0400
++++ b/Makefile Tue Jun 21 00:42:59 2011 -0400
+@@ -115,17 +115,17 @@
+ $(CC) $(LFLAGS) $(OBJS) version.o $(MODLIB) $(LIBS) -o $@
+
+ ifneq ($(STATIC_MODULES),)
+-modules:
++modules: langstrs.h
+ @$(MAKE) -C modules all-static CFLAGS="$(CFLAGS)"
+ else
+-modules:
++modules: langstrs.h
+ @$(MAKE) -C modules all-dynamic CFLAGS="$(CFLAGS)"
+ endif
+
+ languages:
+ @$(MAKE) -C lang CFLAGS="$(CFLAGS)"
+
+-tools: services.h
++tools: langstrs.h services.h
+ @$(MAKE) -C tools CFLAGS="$(CFLAGS)"
+
+
diff --git a/net-irc/ircservices/files/ircservices.confd b/net-irc/ircservices/files/ircservices.confd
new file mode 100644
index 000000000000..6d2bc475ca14
--- /dev/null
+++ b/net-irc/ircservices/files/ircservices.confd
@@ -0,0 +1,11 @@
+# -*- mode: sh; -*-
+
+# The user which ircservices should be run as. Set to an empty value
+# to have ircservices run as the user the initscript is run as (which
+# is generally bad practice).
+IRCSERVICES_USER=ircservices
+
+# The location of the pidfile (as written in ircservices.conf). If the
+# directory containing the pidfile does not exist, and attempt will be
+# made to create that folder and set its owner to IRCSERVICES_USER.
+IRCSERVICES_PIDFILE=/var/run/ircservices/ircservices.pid
diff --git a/net-irc/ircservices/files/ircservices.initd b/net-irc/ircservices/files/ircservices.initd
new file mode 100644
index 000000000000..0bc561c7203c
--- /dev/null
+++ b/net-irc/ircservices/files/ircservices.initd
@@ -0,0 +1,31 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircservices/files/ircservices.initd,v 1.1 2011/06/27 23:55:00 binki Exp $
+
+depend() {
+ need net
+ use ircd
+ provide irc-services
+}
+
+start() {
+ IRCSERVICES_RUNDIR="${IRCSERVICES_PIDFILE%/*}"
+ if ! [ -d "${IRCSERVICES_RUNDIR}" ]; then
+ ebegin "Creating ${IRCSERVICES_RUNDIR} for ${SVCNAME}"
+ mkdir "${IRCSERVICES_RUNDIR}" && chown "${IRCSERVICES_USER}" "${IRCSERVICES_RUNDIR}"
+ eend $?
+ fi
+
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --chuid ircservices --exec /usr/bin/ircservices -- \
+ -dir=/var/lib/ircservices \
+ -log=/var/log/ircservices/ircservices.log
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --pidfile "${IRCSERVICES_PIDFILE}"
+ eend $?
+}
diff --git a/net-irc/ircservices/ircservices-5.1.24.ebuild b/net-irc/ircservices/ircservices-5.1.24.ebuild
new file mode 100644
index 000000000000..825f9df5339b
--- /dev/null
+++ b/net-irc/ircservices/ircservices-5.1.24.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircservices/ircservices-5.1.24.ebuild,v 1.1 2011/06/27 23:55:00 binki Exp $
+
+EAPI=4
+
+inherit eutils fixheadtails flag-o-matic prefix toolchain-funcs
+
+DESCRIPTION="ChanServ, NickServ, and MemoServ with support for several IRC daemons"
+HOMEPAGE="http://achurch.org/services/"
+SRC_URI="http://achurch.org/services/tarballs/${P}.tar.gz"
+LICENSE="GPL-2 FDL-1.2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+pkg_setup() {
+ enewgroup ircservices
+ enewuser ircservices -1 -1 -1 ircservices
+
+ # this is needed, because old ebuilds added the user with ircservices:users
+ usermod -g ircservices ircservices
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-5.1.17-fPIC.patch \
+ "${FILESDIR}"/${PN}-5.1.17-fPIC-configure.patch \
+ "${FILESDIR}"/${P}-ircservices-chk-pidfile.patch \
+ "${FILESDIR}"/${P}-parallel-make.patch \
+ "${FILESDIR}"/${P}-ldflags.patch \
+ "${FILESDIR}"/${P}-as-needed.patch \
+ "${FILESDIR}"/${P}-fd_set-amd64.patch
+
+ ht_fix_file configure
+ sed -i \
+ -e "s/-m 750/-m 755/" \
+ -e "s/-m 640/-m 644/" \
+ configure || die
+
+ sed -i -e "s;ircservices.pid;${EPREFIX}/var/run/ircservices/&;g" data/example-ircservices.conf || die
+}
+
+src_configure() {
+ append-flags -fno-stack-protector
+ # configure fails with -O higher than 2
+ replace-flags "-O[3-9s]" "-O2"
+
+ RUNGROUP="ircservices" \
+ ./configure \
+ -cc "$(tc-getCC)" \
+ -cflags "${CFLAGS}" \
+ -lflags "${LDFLAGS}" \
+ -bindest /usr/bin \
+ -datdest /var/lib/ircservices \
+ || die "./configure failed"
+}
+
+src_install() {
+ dodir /usr/bin /{etc,usr/{$(get_libdir),share},var/lib}/ircservices
+ keepdir /var/log/ircservices
+
+ emake \
+ BINDEST="${D}"/usr/bin \
+ DATDEST="${D}"/var/lib/ircservices \
+ install
+
+ mv "${D}"/var/lib/ircservices/convert-db "${D}"/usr/bin/ircservices-convert-db || die "mv failed"
+
+ # Now we move some files around to make it FHS conform
+ mv "${D}"/var/lib/ircservices/example-ircservices.conf "${D}"/etc/ircservices/ircservices.conf || die "mv failed"
+ dosym /etc/ircservices/ircservices.conf /var/lib/ircservices/ircservices.conf
+
+ mv "${D}"/var/lib/ircservices/example-modules.conf "${D}"/etc/ircservices/modules.conf || die "mv failed"
+ dosym /etc/ircservices/modules.conf /var/lib/ircservices/modules.conf
+
+ mv "${D}"/var/lib/ircservices/modules "${D}"/usr/$(get_libdir)/ircservices || die "mv failed"
+ dosym /usr/$(get_libdir)/ircservices/modules /var/lib/ircservices/modules
+
+ mv "${D}"/var/lib/ircservices/{helpfiles,languages} "${D}"/usr/share/ircservices || die "mv failed"
+ dosym /usr/share/ircservices/helpfiles /var/lib/ircservices/helpfiles
+ dosym /usr/share/ircservices/languages /var/lib/ircservices/languages
+
+ fperms 750 /var/{lib,log}/ircservices /etc/ircservices
+ fperms 640 /etc/ircservices/{ircservices,modules}.conf
+ fowners ircservices:ircservices /var/{lib,log}/ircservices
+ fowners root:ircservices /etc/ircservices{,/{ircservices,modules}.conf}
+
+ newinitd "${FILESDIR}"/ircservices.initd ircservices
+ newconfd "${FILESDIR}"/ircservices.confd ircservices
+
+ doman docs/ircservices*.8
+ newman docs/convert-db.8 ircservices-convert-db.8
+
+ dohtml -r docs/*
+ dodoc docs/Changes* README docs/WhatsNew
+}