summaryrefslogtreecommitdiff
path: root/community/unrealircd
diff options
context:
space:
mode:
Diffstat (limited to 'community/unrealircd')
-rw-r--r--community/unrealircd/PKGBUILD72
-rw-r--r--community/unrealircd/arch-fixes.patch89
-rw-r--r--community/unrealircd/unrealircd.service12
3 files changed, 173 insertions, 0 deletions
diff --git a/community/unrealircd/PKGBUILD b/community/unrealircd/PKGBUILD
new file mode 100644
index 000000000..813d6c0bd
--- /dev/null
+++ b/community/unrealircd/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 94846 2013-07-31 07:46:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zerial <fernando@zerial.org>
+
+pkgname=unrealircd
+pkgver=3.2.10.1
+pkgrel=1
+pkgdesc="Open Source IRC Server"
+arch=('i686' 'x86_64')
+url="http://unrealircd.com"
+license=('GPL2')
+depends=('openssl' 'curl' 'c-ares')
+conflicts=('ircd')
+provides=('ircd')
+backup=('etc/unrealircd/unrealircd.conf'
+ 'etc/conf.d/unrealircd')
+source=(http://www.unrealircd.com/downloads/Unreal$pkgver.tar.gz
+ unrealircd.service
+ arch-fixes.patch)
+md5sums=('97b4bd68a804e517355efa756f401a90'
+ '93276a1cd426e4a811c072c35fc31e94'
+ '77807313c4578f2c30286b9f9e3fb21c')
+
+build() {
+ cd $srcdir/Unreal$pkgver
+
+ patch -p1 <$srcdir/arch-fixes.patch
+
+ ac_cv_ip6=yes ./configure --with-showlistmodes \
+ --enable-hub --enable-prefixaq --with-listen=5 \
+ --with-dpath=/etc/unrealircd \
+ --with-spath=/usr/bin \
+ --with-nick-history=2000 --with-sendq=3000000 \
+ --with-bufferpool=18 --with-hostname=archlinux \
+ --with-permissions=0600 --with-fd-setsize=1024 \
+ --enable-dynamic-linking \
+ --enable-ziplinks \
+ --enable-ssl \
+ --enable-inet6 \
+ --enable-libcurl=/usr \
+ --with-system-cares
+
+ make
+}
+
+package() {
+ cd $srcdir/Unreal$pkgver
+
+ mkdir -p $pkgdir/etc/unrealircd
+ mkdir -p $pkgdir/usr/bin
+
+ make IRCDDIR=$pkgdir/etc/unrealircd BINDIR=$pkgdir/usr/bin install
+
+ mv $srcdir/Unreal$pkgver/src/ircd $pkgdir/usr/bin/unrealircd
+ mv $srcdir/Unreal$pkgver/doc/example.conf $pkgdir/etc/unrealircd/unrealircd.conf
+ mkdir -p $pkgdir/usr/lib/unrealircd
+ mv $pkgdir/etc/unrealircd/modules $pkgdir/usr/lib/unrealircd/
+ ln -s /usr/lib/unrealircd/modules $pkgdir/etc/unrealircd/modules
+
+ # log
+ mkdir -p $pkgdir/var/log/unrealircd/
+ touch $pkgdir/var/log/unrealircd/ircd.log
+ ln -s /var/log/unrealircd/ircd.log $pkgdir/etc/unrealircd/ircd.log
+
+ mkdir -p $pkgdir/etc/conf.d/
+ echo 'UNREALIRCD_USER=root' >$pkgdir/etc/conf.d/unrealircd
+
+ find $pkgdir/usr -type f -exec chmod ugo+r {} \;
+ find $pkgdir/usr -type d -exec chmod ugo+rx {} \;
+
+ install -Dm0644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system/$pkgname.service
+}
diff --git a/community/unrealircd/arch-fixes.patch b/community/unrealircd/arch-fixes.patch
new file mode 100644
index 000000000..a1741968d
--- /dev/null
+++ b/community/unrealircd/arch-fixes.patch
@@ -0,0 +1,89 @@
+diff -wbBur Unreal3.2.org/doc/example.conf Unreal3.2/doc/example.conf
+--- Unreal3.2.org/doc/example.conf 2009-04-13 15:03:55.000000000 +0400
++++ Unreal3.2/doc/example.conf 2011-08-29 13:39:25.000000000 +0400
+@@ -33,8 +33,8 @@
+ */
+
+ /* FOR *NIX, uncomment the following 2lines: */
+-//loadmodule "src/modules/commands.so";
+-//loadmodule "src/modules/cloak.so";
++loadmodule "modules/commands.so";
++loadmodule "modules/cloak.so";
+
+ /* FOR Windows, uncomment the following 2 lines: */
+ //loadmodule "modules/commands.dll";
+diff -wbBur Unreal3.2.org/src/ircd.c Unreal3.2/src/ircd.c
+--- Unreal3.2.org/src/ircd.c 2009-03-01 21:37:58.000000000 +0300
++++ Unreal3.2/src/ircd.c 2011-08-29 13:39:25.000000000 +0400
+@@ -844,7 +844,7 @@
+ const char *compiledfor, *runtime;
+ int error = 0;
+
+-#ifdef USE_SSL
++#if 0
+ compiledfor = OPENSSL_VERSION_TEXT;
+ runtime = SSLeay_version(SSLEAY_VERSION);
+ if (strcasecmp(compiledfor, runtime))
+@@ -854,7 +854,7 @@
+ error=1;
+ }
+ #endif
+-#ifdef ZIP_LINKS
++#if 0
+ runtime = zlibVersion();
+ compiledfor = ZLIB_VERSION;
+ if (*compiledfor != *runtime)
+@@ -864,7 +864,7 @@
+ error = 1;
+ }
+ #endif
+-#ifdef USE_LIBCURL
++#if 0
+ /* Perhaps someone should tell them to do this a bit more easy ;)
+ * problem is runtime output is like: 'libcurl/7.11.1 zlib/1.2.1 c-ares/1.2.0'
+ * while header output is like: '7.11.1'.
+diff -wbBur Unreal3.2.org/unreal.in Unreal3.2/unreal.in
+--- Unreal3.2.org/unreal.in 2009-03-01 21:37:55.000000000 +0300
++++ Unreal3.2/unreal.in 2011-08-29 13:39:37.000000000 +0400
+@@ -7,7 +7,7 @@
+ if [ -r $PID_FILE ] ; then
+ mv -f $PID_FILE $PID_BACKUP
+ fi
+- @BINDIR@
++ @BINDIR@/ircd
+ sleep 1
+ if [ ! -r $PID_FILE ] ; then
+ echo "Possible error encountered (IRCd seemingly not started)"
+@@ -31,11 +31,11 @@
+ echo "Restarting UnrealIRCd"
+ kill -2 `cat $PID_FILE`
+ elif [ "$1" = "mkpasswd" ] ; then
+- @BINDIR@ -P $2 $3
++ @BINDIR@/ircd -P $2 $3
+ elif [ "$1" = "version" ] ; then
+- @BINDIR@ -v
++ @BINDIR@/ircd -v
+ elif [ "$1" = "gencloak" ] ; then
+- @BINDIR@ -k
++ @BINDIR@/ircd -k
+ elif [ "$1" = "backtrace" ] ; then
+ cd @IRCDDIR@
+
+@@ -90,7 +90,7 @@
+ fi
+
+ # Some ugly prepare work -- ignore errors
+- (echo quit|gdb @BINDIR@ $corefile 2>&1)|\
++ (echo quit|gdb @BINDIR@/ircd $corefile 2>&1)|\
+ grep -i 'no such file'|\
+ awk -F ':' '{ print $1 }'|sort|uniq|\
+ awk -F '.' "{ system(\"ln -s ../$modpath/\" \$2 \".so \" \$0) }"
+@@ -110,7 +110,7 @@
+ quit
+ __EOF__
+
+- gdb -batch -x gdb.commands @BINDIR@ $corefile
++ gdb -batch -x gdb.commands @BINDIR@/ircd $corefile
+ rm -f gdb.commands
+ echo "GCC: `gcc -v 2>&1|tail -n 1`"
+ echo "UNAME: `uname -a`"
diff --git a/community/unrealircd/unrealircd.service b/community/unrealircd/unrealircd.service
new file mode 100644
index 000000000..a81419f2a
--- /dev/null
+++ b/community/unrealircd/unrealircd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=IRC daemon
+After=network.target remote-fs.target nss-lookup.target
+
+[Service]
+Type=forking
+User=ircd
+PIDFile=/var/run/unrealircd.pid
+ExecStart=/usr/bin/unrealircd
+
+[Install]
+WantedBy=multi-user.target