archrelease: copy trunk to community-any
[ArchLinux/community.git] / kea / repos / community-x86_64 / PKGBUILD
blobbd53f2c40b6806dab4bee0ecc1e17ba1e4fd2a79
1 # Maintainer: Konstantin Gizdov <arch at kge dot pw>
2 # Contributor: Baptiste Jonglez <baptiste--aur at jonglez dot org>
3 # Contributor: nfnty
5 pkgbase='kea'
6 pkgname=("${pkgbase}" "${pkgbase}-docs")
7 pkgver=2.2.0
8 _upstreamver="${pkgver}"
9 pkgrel=7
10 pkgdesc='High-performance, extensible DHCP server engine from ISC, supporting both DHCPv4 and DHCPv6'
11 arch=('x86_64')
12 url='https://kea.isc.org'
13 license=('MPL2')
14 depends=('log4cplus' 'mariadb-libs' 'openssl' 'postgresql-libs')
15 makedepends=(
16   'boost'
17   'mariadb'
18   'postgresql'
19   'python'  # kea-shell
20   'python-sphinx'
21   'python-sphinx_rtd_theme'
22   'doxygen'
23   'graphviz'
24   # texlive-most group
25   'texlive-bibtexextra'
26   'texlive-core'
27   'texlive-fontsextra'
28   'texlive-formatsextra'
29   'texlive-games'
30   'texlive-humanities'
31   'texlive-latexextra'
32   'texlive-music'
33   'texlive-pictures'
34   'texlive-pstricks'
35   'texlive-publishers'
36   'texlive-science'
38 optdepends=('mariadb: lease information database'
39             'postgresql: lease information database'
40             'python: to use kea-shell'
41             'krb5: Kerberos support'
42             'kea-docs: user and developer documentation')
43 # Checks are disabled for now
44 # We can ignore mysql/pgsql, but admin tests use custom scripts that break everything
45 checkdepends=('gtest' 'procps-ng') # procps-ng needed for 'pgrep'
46 source=(
47   "https://ftp.isc.org/isc/${pkgbase}/${_upstreamver}/${pkgbase}-${_upstreamver}.tar.gz"{,.asc}
48   'tmpfiles-kea.conf'
49   'kea-dhcp4.service'
50   'kea-dhcp6.service'
51   'kea-dhcp-ddns.service'
52   'kea-ctrl-agent.service'
54 b2sums=('10b4bca1a135c6d146490f8c4c7bd4d56c1c03e2b4cc88a6888fcad5d1a5c2ee2d2c0215cb345b53a2a4262dbd02516d75d5778835d45384a7d69a062b8696b9'
55         'SKIP'
56         '7ac151ae19093350e75112ab1fba38561f6f986a8ac333ada91b86819abd65559e31cec86ef19fce68e0e56cbae7ed28858654507c4d975985db4d34ee0184fb'
57         'b25f29b3cd8657508d766eb4c92c8c2b9ebebd60c3639930cb0439f69d205352b6ef066409d704228721ae252b0d954e5f6a3a26bb46c33bbc9ede4170c22e94'
58         '60167919868547b03bfd37ffdd88a636019f1b6340aadd5c44fa99e77f66f47595fe89830bb53de11b91702d1dff986988d4c7df29a16e9456b1976760496259'
59         '01035d110b87bed6664e49f11d3d483a4e6a7b9290b05c85a43e485b309c8f15dc00b09959804f5dc3d7590abea36334300010e557988de587a2bf9043966d67'
60         'f7be743d8b90ffc82551c3afc28477c8bef10596c77368ccb63e61de7355518e5e668429ab277e3f1a994cdc8b3ef542867ddb91bc7f23860dfe2d72f67b99ba')
61 validpgpkeys=('BE0E9748B718253A28BB89FFF1B11BF05CF02E57'  # Internet Systems Consortium, Inc. (Signing key, 2017-2018) <codesign@isc.org>
62               'AE3FAC796711EC59FC007AA474BB6B9A4CBB3D38'  # Internet Systems Consortium, Inc. (Signing key, 2019-2020) <codesign@isc.org>
63               '7E1C91AC8030A5A59D1EFAB9750F3C87723E4012') # Internet Systems Consortium, Inc. (Signing key, 2021-2022) <codesign@isc.org>
65 build() {
66   cd "${srcdir}/${pkgbase}-${_upstreamver}"
67   ./configure \
68       --prefix='/usr' \
69       --sbindir='/usr/bin' \
70       --libexecdir='/usr/bin' \
71       --sysconfdir='/etc' \
72       --localstatedir='/var' \
73       --runstatedir='/run' \
74       --enable-perfdhcp \
75       --enable-generate-messages \
76       --enable-generate-parser \
77       --enable-generate-docs \
78       --enable-shell \
79       --disable-static \
80       --with-gtest \
81       --with-openssl \
82       --with-mysql \
83       --with-pgsql \
84       --with-gssapi \
85       --with-log4cplus
86   # do not treat sphinx warnings as errors
87   sed -e 's/sphinxopts = -v -E -a -W/sphinxopts = -v -E -a/g' \
88       -i doc/sphinx/Makefile
89   # prevent libtool overlinking
90   sed -i -e 's/ -shared / '"${LDFLAGS}"' -shared /g' libtool
91   make
92   make -C doc/devel devel
95 check() {
96   cd "${srcdir}/${pkgname}-${_upstreamver}"
97   # Disable mysql and postgresql for now, tests require live DBs
98   export GTEST_FILTER='-mysql.*:*mysql*:*MySql*:*MySQL*:pgsql.*:*pgsql*:*PgSql*:*PgSQL*'
99   # the above works, but admin tests use custom scripts that ignore it and break everything
100   # make check
103 package_kea() {
104   backup=(
105     # New config files as of Kea 1.3
106     'etc/kea/kea-dhcp4.conf'
107     'etc/kea/kea-dhcp6.conf'
108     'etc/kea/kea-dhcp-ddns.conf'
109     'etc/kea/keactrl.conf'
110     'etc/kea/kea-ctrl-agent.conf'
111   )
112   cd "${srcdir}/kea-${_upstreamver}"
113   make DESTDIR="${pkgdir}" install
114   # Do not package /run
115   rm -rf "${pkgdir}"/run
116   install -Dm644 "${srcdir}"/tmpfiles-kea.conf "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname}.conf
117   # Systemd service files
118   install -Dm644 "${srcdir}"/kea-dhcp4.service "${pkgdir}"/usr/lib/systemd/system/kea-dhcp4.service
119   install -Dm644 "${srcdir}"/kea-dhcp6.service "${pkgdir}"/usr/lib/systemd/system/kea-dhcp6.service
120   install -Dm644 "${srcdir}"/kea-dhcp-ddns.service "${pkgdir}"/usr/lib/systemd/system/kea-dhcp-ddns.service
121   install -Dm644 "${srcdir}"/kea-ctrl-agent.service "${pkgdir}"/usr/lib/systemd/system/kea-ctrl-agent.service
122   # split docs in a separate package
123   rm -rf "${pkgdir}"/usr/share/{doc,man}
126 package_kea-docs() {
127   depends=()
128   optdepends=()
129   provides=('kea-devel-docs')
130   replaces=('kea-devel-docs')
132   cd "${srcdir}/${pkgbase}-${_upstreamver}"
133   install -d "${pkgdir}/usr/share/doc/${pkgbase}/"
134   make DESTDIR="${pkgdir}" -C doc install
135   cp -r doc/devel/html "${pkgdir}/usr/share/doc/${pkgbase}/devel"
136   rm "${pkgdir}"/usr/share/doc/kea/devel/doxygen{,-error}.log