summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: d8c276ab120a3c0b1c7e0d8938d0705f1b7bc9a0 (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
# Maintainer:
# Contributor: Maxime Poulin <maxpoulin64@gmail.com>
# Contributor: Felix Golatofski <contact@xdfr.de>
# Contributor: Damian Nowak <damian.nowak@atlashost.eu>
# Contributor: Kyle Fuller <inbox@kylefuller.co.uk>
# Contributor: jibi <jibi@paranoici.org>

_pkgname="inspircd"
pkgname="$_pkgname"
pkgver=4.6.0
pkgrel=1
pkgdesc='Modular Internet Relay Chat (IRC) server'
url="https://github.com/inspircd/inspircd"
license=('GPL-2.0-only')
arch=('x86_64' 'aarch64')

depends=(
  'perl'
)
optdepends=(
  'argon2: m_argon2'
  'gnutls: m_ssl_gnutls'
  'libldap: m_ldap'
  'libmaxminddb: m_geo_maxmind'
  'libpsl: m_cloak_sha256'
  'mariadb-libs: m_mysql'
  'openssl: m_ssl_openssl'
  'pcre2: m_regex_pcre2'
  'postgresql-libs: m_pgsql'
  're2: m_regex_re2'
  'sqlite: m_sqlite3'
  'yyjson: m_log_json'
)

for i in "${optdepends[@]}"; do
  makedepends+=("${i%%:*}")
done

install='inspircd.install'

_pkgsrc="$_pkgname-$pkgver"
_pkgext="tar.gz"
source=("$_pkgsrc.$_pkgext"::"https://github.com/inspircd/inspircd/archive/v$pkgver.$_pkgext")
sha256sums=('d661648bdcb397d8bd2d4afe2746f8e991923d3d82e83d9fa215194f445977f7')

build() {
  local _config_opts=(
    --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
    --distribution-label=archlinux
    --disable-auto-extras
    --disable-ownership
  )

  cd "$_pkgsrc"
  ./configure --enable-extras "argon2 geo_maxmind ldap log_json log_syslog mysql pgsql regex_pcre2 regex_posix regex_re2 sqlite3 ssl_gnutls ssl_openssl sslrehashsignal"
  ./configure ${_config_opts[@]}

  echo "Building inspircd..."
  INSPIRCD_TARGET=inspircd make

  echo "Building coremods..."
  INSPIRCD_TARGET=coremods make

  echo "Building modules..."
  INSPIRCD_TARGET=modules make
}

package() {
  cd "$_pkgsrc"
  make DESTDIR="$pkgdir" install

  install -Dm644 /dev/stdin "$pkgdir/usr/lib/systemd/system/$_pkgname.service" << END
[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
END

  install -Dm644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/$_pkgname.conf" << END
g inspircd /var/lib/inspircd
u inspircd - "inspircd user" /var/lib/inspircd /bin/false
END
}