# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=avahi
pkgver=0.9_rc4
pkgrel=0
pkgdesc="multicast/unicast DNS-SD framework"
url="https://www.avahi.org/"
arch="all"
license="LGPL-2.1-or-later"
pkgusers="avahi"
pkggroups="avahi"
depends_openrc="dbus"
depends_dev="gdbm-dev"
makedepends="
	$depends_dev
	autoconf
	automake
	dbus-dev
	expat-dev
	gettext-dev
	glib-dev
	gobject-introspection-dev
	libcap-dev
	libdaemon-dev
	libevent-dev
	libtool
	py3-dbus
	py3-gobject3-dev
	py3-setuptools
	python3-dev
	python3-gdbm
	xmltoman
	xz
	"
install="$pkgname.pre-install"
subpackages="
	$pkgname-static
	$pkgname-dev
	$pkgname-doc
	$pkgname-tools
	$pkgname-glib
	$pkgname-libs
	py3-avahi-pyc
	py3-avahi:py3:noarch
	$pkgname-compat-howl:howl
	$pkgname-compat-libdns_sd:lidns_sd
	$pkgname-lang
	$pkgname-openrc
	$pkgname-nftrules
	$pkgname-systemd
	"
source="https://github.com/avahi/avahi/archive/refs/tags/v${pkgver/_/-}.tar.gz
	Add-hostname-dependency-to-avahi-daemon-service.patch
	avahi.nft
	"
builddir="$srcdir/avahi-${pkgver/_/-}/"

# secfixes:
#   0.8-r26:
#     - CVE-2026-34933
#   0.8-r25:
#     - CVE-2025-68276
#     - CVE-2025-68468
#     - CVE-2025-68471
#     - CVE-2026-24401
#   0.8-r21:
#     - CVE-2024-52615
#     - CVE-2024-52616
#   0.8-r16:
#     - CVE-2023-38470
#   0.8-r15:
#     - CVE-2023-38469
#     - CVE-2023-38471
#   0.8-r14:
#     - CVE-2023-1981
#     - CVE-2023-38472
#     - CVE-2023-38473
#   0.8-r5:
#     - CVE-2021-3502
#   0.8-r4:
#     - CVE-2021-3468
#   0.7-r2:
#     - CVE-2017-6519
#     - CVE-2018-1000845
#   0:
#     - CVE-2021-26720

prepare() {
	default_prepare
	autoreconf -vif
}

build() {
	# we dont build autoipd since dhcpcd does same job
	LDFLAGS="$LDFLAGS -lintl" \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--localstatedir=/var \
		--disable-autoipd \
		--disable-qt3 \
		--disable-qt4 \
		--disable-qt5 \
		--disable-gtk \
		--disable-gtk3 \
		--disable-libsystemd \
		--disable-mono \
		--disable-monodoc \
		--disable-doxygen-doc \
		--enable-compat-libdns_sd \
		--enable-compat-howl \
		--enable-python \
		--with-dbus-sys=/usr/share/dbus-1/system.d \
		--with-systemdsystemunitdir=/usr/lib/systemd/system \
		--with-distro="gentoo"
	make
}

check() {
	make check
}

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

	ln -s avahi-compat-howl.pc "$pkgdir"/usr/lib/pkgconfig/howl.pc
	ln -s avahi-compat-libdns_sd.pc "$pkgdir"/usr/lib/pkgconfig/libdns_sd.pc
	ln -s avahi-compat-libdns_sd/dns_sd.h "$pkgdir"/usr/include/

	# XXX these are added since the python support, but are broken
	rm -v "$pkgdir"/usr/bin/avahi-bookmarks
	rm -v "$pkgdir"/usr/bin/avahi-discover
	rm -v "$pkgdir"/usr/share/applications/avahi-discover.desktop
	rmdir "$pkgdir"/usr/share/applications/

	install -Dm644 "$srcdir"/avahi.nft "$pkgdir"/usr/share/nftables.avail/50_avahi.nft
}

tools() {
	pkgdesc="Command line tools for mDNS browsing and publishing"

	amove \
		usr/bin/avahi-browse* \
		usr/bin/avahi-publish* \
		usr/bin/avahi-resolve* \
		usr/bin/avahi-set*
}

glib() {
	pkgdesc="Glib libraries and GObject wrapper for avahi"

	amove usr/lib/libavahi-glib.so.* \
		usr/lib/libavahi-gobject.so.*
}

libs() {
	pkgdesc="Libraries for avahi run-time use"

	amove usr/lib/libavahi-common.so.* \
		usr/lib/libavahi-client.so.*
}

howl() {
	pkgdesc="Libraries for howl compatibility"

	amove usr/lib/libhowl.so.*
}

lidns_sd() {
	pkgdesc="Libraries for Apple Bonjour mDNSResponder compatibility"

	amove usr/lib/libdns_sd.so.*
}

py3() {
	pkgdesc="Python Avahi module"
	depends="py3-dbus python3"

	amove usr/lib/python*
}

sha512sums="
6d097dd01496dca1e1db56b462ba85707a035af91c211906ca58a8e7be6980c00b56524d5ce64281791c6e298217fadd9a6639dd81471631642562d4ab345bc2  v0.9-rc4.tar.gz
b003e16ced0076a3ef8aa34333405265169b96f92d1ece648f0e70ae07c651383e02d8ad27d52665a07d1ced0bbcdbd281f74a9af26ec48c60f8909409bdbe43  Add-hostname-dependency-to-avahi-daemon-service.patch
463b48417209dcaf9886f58f5a77a4ef8fa6d196e3a17197ee0c781730dc774959a0011b7679d7d6e26f53c2879a688bdcae7509e2a82626ed9601232c0db05a  avahi.nft
"
