From ee02004ef1eed19fcacedf87aebf1a1ecfda8690 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Fri, 25 May 2018 21:55:38 -0400 Subject: [PATCH] Add inspircd --- src/inspircd/PKGBUILD | 68 +++++++++++++++++++++++++++++++++++ src/inspircd/inspircd.install | 21 +++++++++++ src/inspircd/inspircd.service | 17 +++++++++ 3 files changed, 106 insertions(+) create mode 100644 src/inspircd/PKGBUILD create mode 100644 src/inspircd/inspircd.install create mode 100644 src/inspircd/inspircd.service diff --git a/src/inspircd/PKGBUILD b/src/inspircd/PKGBUILD new file mode 100644 index 0000000..bdd29e8 --- /dev/null +++ b/src/inspircd/PKGBUILD @@ -0,0 +1,68 @@ +# Maintainer: Maxime Poulin +# Contributor: Damian Nowak +# Contributor: Kyle Fuller +# Contributor: jibi + +pkgname='inspircd' +pkgver='2.0.26' +pkgrel='1' +pkgdesc='A stable, modern and lightweight IRC daemon' +arch=('any') +url='http://www.inspircd.org/' +license=('GPL2') +conflicts=('inspircd') +provides=('inspircd') +depends=('perl' 'openssl') +makedepends=('pkg-config' 'geoip') +optdepends=('geoip: m_geoip') +install='inspircd.install' +source=("https://github.com/inspircd/inspircd/archive/v$pkgver.tar.gz" + "https://raw.githubusercontent.com/inspircd/inspircd-extras/master/2.0/m_rehashsslsignal.cpp" + 'inspircd.service') +sha512sums=('950982629eab0dabeac9e7f2ab6e8b923bc5dafa978280cb91aa28c40997b7cfac2e4d39d74bb4c9cdb8f818205cc17bf782ec86f0aae966cb9c47bbf8143d1a' +'a5f2a01bbc3e3ba0d5979d5146818edc3c6cfe975f1cdd84b7bb8ceb6ea734d2b3e1cfa8a41551b3ef622df508baddcc0c6f6fe79239026eed6c23cc9e31984f' +'5a16a7c237693ffc6a108358f339b6aa2451fb16430561848ae869f890199b38fab6a13640bcc35cf1d07e32d7e5fff405d88668ee05ddaffc2ef61cb42ee832') + +build() { + cd "${srcdir}/inspircd-${pkgver}" + + cp "${srcdir}/m_rehashsslsignal.cpp" src/modules/extra/ + + ./configure \ + --enable-extras=m_geoip.cpp \ + --enable-extras=m_rehashsslsignal.cpp \ + --enable-extras=m_ssl_openssl.cpp +# --enable-extras=m_ldapauth.cpp \ +# --enable-extras=m_ldapoper.cpp \ +# --enable-extras=m_mysql.cpp \ +# --enable-extras=m_regex_pcre.cpp \ +# --enable-extras=m_regex_posix.cpp +# --enable-extras=m_sqlite3.cpp + + ./configure \ + --enable-openssl \ + --uid=0 \ + --prefix=/usr/lib/inspircd \ + --binary-dir=/usr/bin \ + --module-dir=/usr/lib/inspircd/modules \ + --config-dir=/etc/inspircd \ + --data-dir=/var/lib/inspircd \ + --log-dir=/var/log/inspircd \ + --enable-epoll + + make +} + +package() { + install -Dm644 "${srcdir}"/inspircd.service "${pkgdir}"/usr/lib/systemd/system/inspircd.service + install -o141 -g141 -dm750 "${pkgdir}/var/log/inspircd" "${pkgdir}/var/lib/inspircd" + + cd "${srcdir}/inspircd-${pkgver}" + make DESTDIR="$pkgdir" install + + mkdir -p "${pkgdir}"/usr/share/inspircd + mv "${pkgdir}"/etc/inspircd/examples "${pkgdir}"/usr/share/inspircd/examples + + rm -rf "${pkgdir}"/usr/lib/inspircd/logs + rm -rf "${pkgdir}"/usr/lib/inspircd/data +} diff --git a/src/inspircd/inspircd.install b/src/inspircd/inspircd.install new file mode 100644 index 0000000..997f72d --- /dev/null +++ b/src/inspircd/inspircd.install @@ -0,0 +1,21 @@ +create_user() { + getent group inspircd &>/dev/null || groupadd -r -g 141 inspircd >/dev/null + getent passwd inspircd &>/dev/null || useradd -r -u 141 -g inspircd -d /var/lib/inspircd -s /bin/false inspircd >/dev/null +} + +post_install() { + create_user + echo '==> You will need to create a config file for inspircd' + echo '==> cp /usr/share/inspircd/examples/inspircd.conf.example /etc/inspircd/inspircd.conf' + echo '==> You will need to change the pidfile. To do this you can insert the following into your config.' + echo '==> ' + echo '==> Remember to use absolute paths in your config directory and not relative paths like you would do with a user-based inspircd install.' +} + +post_upgrade() { + create_user +} + +post_remove() { + getent passwd inspircd &>/dev/null && userdel inspircd +} diff --git a/src/inspircd/inspircd.service b/src/inspircd/inspircd.service new file mode 100644 index 0000000..7461129 --- /dev/null +++ b/src/inspircd/inspircd.service @@ -0,0 +1,17 @@ +[Unit] +Description=InspIRCd IRC daemon +Requires=network.target +After=network.target + +[Service] +Type=forking +PIDFile=/var/lib/inspircd/inspircd.pid +ExecStart=/usr/lib/inspircd/inspircd start +ExecReload=/usr/lib/inspircd/inspircd rehash +ExecStop=/usr/lib/inspircd/inspircd stop +Restart=always +User=inspircd +Group=inspircd + +[Install] +WantedBy=multi-user.target