aports/main/dnsmasq/APKBUILD

189 lines
5.5 KiB
Text

# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
pkgname=dnsmasq
pkgver=2.91
pkgrel=0
pkgdesc="A lightweight DNS, DHCP, RA, TFTP and PXE server"
url="https://www.thekelleys.org.uk/dnsmasq/"
arch="all"
license="GPL-2.0-or-later"
depends="$pkgname-common=$pkgver-r$pkgrel"
makedepends="
coreutils
dbus-dev
linux-headers
nettle-dev
nftables-dev
"
install="
$pkgname.pre-install
$pkgname.pre-upgrade
$pkgname-dnssec.pre-install
$pkgname-dnssec.pre-upgrade
$pkgname-dnssec-nftset.pre-install
$pkgname-dnssec-nftset.pre-upgrade
$pkgname-dnssec-dbus.pre-install
$pkgname-dnssec-dbus.pre-upgrade
"
subpackages="
$pkgname-doc
$pkgname-dnssec
$pkgname-dnssec-nftset
$pkgname-dnssec-dbus
$pkgname-openrc
$pkgname-common::noarch
$pkgname-utils
$pkgname-utils-doc:utils_doc:noarch
"
source="https://www.thekelleys.org.uk/dnsmasq/dnsmasq-$pkgver.tar.xz
0000-underflow.patch
config.h.patch
dnsmasq.conf.patch
$pkgname.initd
$pkgname.confd
"
# secfixes:
# 2.90-r0:
# - CVE-2023-50387
# - CVE-2023-50868
# 2.89-r3:
# - CVE-2023-28450
# 2.86-r1:
# - CVE-2022-0934
# 2.85-r0:
# - CVE-2021-3448
# 2.83-r0:
# - CVE-2020-25681
# - CVE-2020-25682
# - CVE-2020-25683
# - CVE-2020-25684
# - CVE-2020-25685
# - CVE-2020-25686
# - CVE-2020-25687
# 2.80-r5:
# - CVE-2019-14834
# 2.79-r0:
# - CVE-2017-15107
# 2.78-r0:
# - CVE-2017-13704
# - CVE-2017-14491
# - CVE-2017-14492
# - CVE-2017-14493
# - CVE-2017-14494
# - CVE-2017-14495
# - CVE-2017-14496
build() {
export CFLAGS="$CFLAGS -flto=auto"
make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" COPTS="-DHAVE_DNSSEC" all
mv src/dnsmasq src/dnsmasq~dnssec
make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" COPTS="-DHAVE_DNSSEC -DHAVE_NFTSET" all
mv src/dnsmasq src/dnsmasq~nftset
make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" COPTS="-DHAVE_DNSSEC -DHAVE_DBUS" all
mv src/dnsmasq src/dnsmasq~dbus
make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" clean all
cd contrib/lease-tools/
make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" clean all
}
# dnsmasq doesn't provide any test suite (shame on them!), so just check that
# the binary isn't totally broken...
check() {
./src/dnsmasq --help >/dev/null
}
package() {
provider_priority=100 # highest (other providers are dnsmasq-dnssec, dnsmasq-dnssec-nftset, dnsmasq-dnssec-dbus)
make PREFIX=/usr DESTDIR="$pkgdir" install
install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
dnssec() {
pkgdesc="$pkgdesc with DNSSEC support"
provides="$pkgname=$pkgver-r$pkgrel"
provider_priority=20 # middle (other providers are dnsmasq, dnsmasq-dnssec-nftset, dnsmasq-dnssec-dbus)
install -D -m 755 "$builddir"/src/dnsmasq~dnssec "$subpkgdir"/usr/sbin/dnsmasq
}
nftset() {
pkgdesc="$pkgdesc with DNSSEC and nftables set support"
provides="
$pkgname=$pkgver-r$pkgrel
$pkgname-dnssec=$pkgver-r$pkgrel
"
provider_priority=15 # lower (other providers are dnsmasq, dnsmasq-dnssec, dnsmasq-dnssec-nftset)
cd "$builddir"
install -D -m755 src/dnsmasq~nftset "$subpkgdir"/usr/sbin/dnsmasq
}
dbus() {
pkgdesc="$pkgdesc with DNSSEC and D-Bus support"
provides="
$pkgname=$pkgver-r$pkgrel
$pkgname-dbus=$pkgver-r$pkgrel
$pkgname-dnssec=$pkgver-r$pkgrel
"
provider_priority=10 # lowest (other providers are dnsmasq, dnsmasq-dnssec, dnsmasq-dnssec-nftset)
cd "$builddir"
install -D -m755 src/dnsmasq~dbus "$subpkgdir"/usr/sbin/dnsmasq
install -D -m644 dbus/dnsmasq.conf -t "$subpkgdir"/usr/share/dbus-1/system.d/
}
common() {
pkgdesc="$pkgdesc (common files)"
depends=""
replaces="$pkgname<2.86-r1 $pkgname-dnssec<2.86-r3"
install -D -m644 "$builddir"/dnsmasq.conf.example "$subpkgdir"/etc/dnsmasq.conf
install -d -m755 "$subpkgdir"/etc/dnsmasq.d
install -D -m644 "$builddir"/trust-anchors.conf \
"$subpkgdir"/usr/share/$pkgname/trust-anchors.conf
}
openrc() {
default_openrc
install_if="openrc $pkgname-common=$pkgver-r$pkgrel"
}
utils() {
pkgdesc="$pkgdesc - contrib utilities"
depends="$pkgname=$pkgver-r$pkgrel"
install -Dm755 -t "$subpkgdir"/usr/bin/ \
"$builddir"/contrib/lease-tools/dhcp_release \
"$builddir"/contrib/lease-tools/dhcp_release6 \
"$builddir"/contrib/lease-tools/dhcp_lease_time
}
utils_doc() {
pkgdesc="$pkgdesc - contrib utilities (documentation)"
install_if="$pkgname-utils=$pkgver-r$pkgrel docs"
install -Dm644 -t "$subpkgdir"/usr/share/man/man1/ \
"$builddir"/contrib/lease-tools/dhcp_release.1 \
"$builddir"/contrib/lease-tools/dhcp_release6.1 \
"$builddir"/contrib/lease-tools/dhcp_lease_time.1
gzip -9 "$subpkgdir"/usr/share/man/man1/*.1
}
sha512sums="
d8b062d28f32d0e499e551aeebba75d3ea9f6a5173d78f45292cb1ef28a5d0f7c86982d987fe25c3cee9f139023b1fd023130dddd0dc849fb0cfbd969c3b0c7f dnsmasq-2.91.tar.xz
5083bbe7150276d2226ba4b5bab73c513fe7baf4843b85d83d1ab16cb50e2dcc1dbd9ed04a89e2f9ea61796b12ea36206cc49a2574ce75abb37cb46279bd9aeb 0000-underflow.patch
d0274417019af84911f3f4a850e785797bdc77732fd93504fe21db7317a874d2ab54bf7a211d000a751cdc43e225a30be4c1a315ab2383fc3fcc619e436aed97 config.h.patch
41679e0e889607896dcf7fdeb179b9b7a79095c9f86aebda131ac09c12e3ef2a94cece0018ab33ea08d3e6f6bbae44379e9d6fb8987fae29e68ecad952ccdd45 dnsmasq.conf.patch
0c609a55ca0140d8f31f8f6eb4cb96eca7bc76385d48739998bea926b409f3d72cbfdffc30ad3f9e3a62db4ea3280f7fe6a60a12fc091164814a7cdf6a14b307 dnsmasq.initd
c6ecec498f07916cd3c5ff183ff2a2ec478cf95ee43c0082d164b548d72b13fc9ba7cfbca9fb50e919e146708b5ce7f3b3a6565b36223c4efe1481172214ad93 dnsmasq.confd
"