# Template file for 'avahi'
pkgname=avahi
version=0.8
revision=1
build_style=gnu-configure
build_helper="gir"
configure_args="--disable-qt3 --disable-qt4 --disable-mono --disable-monodoc
	--disable-doxygen-doc --enable-compat-libdns_sd --enable-compat-howl
	--with-xml=expat --with-avahi-user=avahi --with-avahi-group=avahi
	--with-avahi-priv-access-group=network --with-autoipd-user=avahi
	--with-autoipd-group=avahi --with-distro=none --enable-xmltoman
	--disable-static ssp_cv_lib=no --disable-dbm --enable-python
	--enable-glib --enable-gobject --enable-qt5 --enable-gtk --enable-gtk3
	--sbindir=/usr/bin --without-systemdsystemunitdir
	--with-dbus-system-address=unix:path=/run/dbus/system_bus_socket
	$(vopt_enable gir introspection) $(vopt_enable gir pygobject)"
short_desc="Multicast DNS Service Discovery"
maintainer="Andrew J. Hesford <ajh@sideband.org>"
license="LGPL-2.1-or-later"
homepage="https://github.com/lathiat/avahi"
### NOTE: The Avahi 0.8 release tarball is broken; it is missing the build-db
### script. Fetching and manipulation of this file in post_extract should be
### undone in a future release that fixes this oversight.
distfiles="${homepage}/releases/download/v${version}/avahi-${version}.tar.gz
	https://raw.githubusercontent.com/lathiat/${pkgname}/v${version}/service-type-database/build-db>build-db.txt"
checksum="060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda
	83edd888ccc464ab032134a45b7ded3bc43cb1dda2cd921ff47b01949d98ed7c"
skip_extraction="build-db.txt"

hostmakedepends="pkg-config intltool xmltoman glib-devel automake
	libtool gettext-devel python3 python3-dbus qt5-host-tools
	$(vopt_if gir gobject-introspection)"
makedepends="dbus-devel libcap-devel libdaemon-devel gdbm-devel
	libevent-devel glib-devel python3-dbus gtk+-devel
	gtk+3-devel qt5-devel $(vopt_if gir python-gobject-devel)"
conf_files="
	/etc/avahi/services/ssh.service
	/etc/avahi/services/sftp-ssh.service
	/etc/avahi/avahi-daemon.conf
	/etc/avahi/hosts
	/etc/avahi/avahi-dnsconfd.action"
system_accounts="avahi:23"

build_options="gir"
build_options_default="gir"

post_extract() {
	# Avahi 0.8 release mistaken left build-db out of release tarball
	cp ${XBPS_SRCDISTDIR}/${pkgname}-${version}/build-db.txt service-type-database/build-db
}

pre_configure() {
	# Without reconfiguration, gtk3 deps are not fully recognized
	autoreconf -if
	vsed -e 's,-Werror,,g' -i configure
}

post_install() {
	# Set 'enable-dbus=warn' option by default to not require dbus.
	vsed -e 's,\#\(enable-dbus\).*,\1=warn,' -i ${DESTDIR}/etc/avahi/avahi-daemon.conf
	vsv avahi-daemon

	# Python files are compatible with both 2.7 and 3.x, make both subpackages
	vmkdir ${py2_lib}
	vcopy ${DESTDIR}/${py3_sitelib} ${py2_lib}
}

avahi-autoipd_package() {
	depends="net-tools"
	short_desc="Avahi IPv4LL network address configuration daemon"
	pkg_install() {
		vmove usr/bin/avahi-autoipd
		vmove "usr/share/man/man8/avahi-autoipd*"
		vmove etc/avahi/avahi-autoipd.action
	}
}

avahi-compat-libs-devel_package() {
	depends="avahi-libs-devel-${version}_${revision} avahi-compat-libs-${version}_${revision}"
	short_desc="Avahi compat libraries - development files"
	pkg_install() {
		vmove "usr/include/avahi-compat*"
		vmove "usr/lib/pkgconfig/avahi-compat*"
		vmove usr/lib/libhowl.so
		vmove usr/lib/libdns_sd.so
	}
}

avahi-compat-libs_package() {
	short_desc="Avahi compatiblity shared libraries"
	pkg_install() {
		vmove "usr/lib/libhowl.so.*"
		vmove "usr/lib/libdns_sd.so.*"
	}
}

avahi-libs-devel_package() {
	depends="dbus-devel avahi-libs-${version}_${revision}"
	short_desc="Avahi core libraries - development files"
	pkg_install() {
		for f in common client core; do
			vmove usr/include/avahi-${f}
		done
		vmove usr/lib/pkgconfig/avahi-core.pc
		vmove usr/lib/pkgconfig/avahi-client.pc
		vmove usr/lib/libavahi-client.so
		vmove usr/lib/libavahi-core.so
		vmove usr/lib/libavahi-common.so
	}
}

avahi-libs_package() {
	short_desc="Avahi shared libraries"
	pkg_install() {
		vmove "usr/lib/libavahi-client.so.*"
		vmove "usr/lib/libavahi-core.so.*"
		vmove "usr/lib/libavahi-common.so.*"
	}
}

avahi-utils_package() {
	short_desc="Avahi browsing, publishing and discovery utilities"
	pkg_install() {
		vmove usr/bin/avahi-browse*
		vmove usr/bin/avahi-publish*
		vmove usr/bin/avahi-resolv*
		vmove usr/share/man/man1
	}
}

avahi-libevent-libs_package() {
	short_desc="Avahi libevent integration libraries"
	pkg_install() {
		vmove "usr/lib/libavahi-libevent.so.*"
	}
}

avahi-libevent-libs-devel_package() {
	depends="avahi-libs-devel-${version}_${revision} avahi-libevent-libs-${version}_${revision}"
	short_desc="Avahi libevent integration libraries - development files"
	pkg_install() {
		vmove usr/lib/libavahi-libevent.so
		vmove "usr/include/avahi-libevent*"
		vmove "usr/lib/pkgconfig/avahi-libevent*"
	}
}

avahi-discover_package() {
	short_desc="Avahi service-discovery user interface"
	depends="avahi>=${version}_${revision} avahi-python3>=${version}_${revision}
		$(vopt_if gir 'gtk+3 python3-gobject')"
	python_version=3
	pkg_install() {
		if [ "$build_option_gir" ]; then
			vmove usr/bin/avahi-discover
			vmove usr/share/applications/avahi-discover.desktop
		fi
		vmove usr/share/avahi/interfaces/avahi-discover.ui
		vmove usr/share/man/man1/avahi-discover.1
	}
}

avahi-python-utils_package() {
	build_style=meta
	archs=noarch
	short_desc+="Avahi python utilities - transitional dummy pkg"
	depends="avahi-python3-utils-${version}_${revision}"
}

avahi-python3-utils_package() {
	depends="avahi-python3>=${version}_${revision}"
	short_desc="Avahi python utilities"
	archs=noarch
	python_version=3
	pkg_install() {
		vmove usr/bin/avahi-bookmarks
		vmove usr/share/man/man1/avahi-bookmarks.1
	}
}

avahi-python_package() {
	depends="python-dbus"
	short_desc="Python utility package for Avahi"
	archs=noarch
	pkg_install() {
		vmove ${py2_sitelib}/avahi
	}
}

avahi-python3_package() {
	depends="python3-dbus"
	short_desc="Python3 utility package for Avahi"
	archs=noarch
	pkg_install() {
		vmove ${py3_sitelib}/avahi
	}
}

avahi-glib-libs-devel_package() {
	depends="avahi-libs-devel>=${version}_${revision} avahi-glib-libs>=${version}_${revision}"
	short_desc="Avahi glib libraries - development files"
	pkg_install() {
		vmove "usr/include/avahi-g*"
		vmove "usr/lib/pkgconfig/avahi-g*"
		if [ "$build_option_gir" ]; then
			vmove usr/share/gir-1.0
		fi
		vmove usr/lib/libavahi-glib.so
		vmove usr/lib/libavahi-gobject.so
	}
}

avahi-glib-libs_package() {
	short_desc="Avahi glib shared libraries"
	pkg_install() {
		vmove "usr/lib/libavahi-glib.so.*"
		vmove "usr/lib/libavahi-gobject.so.*"
		if [ "$build_option_gir" ]; then
			vmove usr/lib/girepository-1.0
		fi
	}
}

avahi-ui-libs-devel_package() {
	depends="gtk+-devel gtk+3-devel avahi-libs-devel>=${version}_${revision}
		avahi-ui-libs>=${version}_${revision} avahi-ui-libs-gtk3>=${version}_${revision}"
	short_desc="Avahi UI libraries - development files"
	pkg_install() {
		vmove usr/include/avahi-ui/avahi-ui.h
		vmove usr/lib/pkgconfig/avahi-ui.pc
		vmove usr/lib/pkgconfig/avahi-ui-gtk3.pc
		vmove usr/lib/libavahi-ui-gtk3.so
		vmove usr/lib/libavahi-ui.so
	}
}

avahi-qt5-libs_package() {
	short_desc="Avahi Qt5 shared libraries"
	pkg_install() {
		vmove "usr/lib/libavahi-qt5.so.*"
	}
}

avahi-qt5-libs-devel_package() {
	depends="qt5-devel avahi-libs-devel>=${version}_${revision} avahi-qt5-libs>=${version}_${revision}"
	short_desc="Avahi QT5 shared libraries - development files"
	pkg_install() {
		vmove usr/lib/pkgconfig/avahi-qt5.pc
		vmove usr/lib/libavahi-qt5.so
		vmove usr/include/avahi-qt5
	}
}

avahi-ui-libs-gtk3_package() {
	short_desc="Avahi UI GTK+3 shared libraries"
	pkg_install() {
		vmove "usr/lib/libavahi-ui-gtk3.so.*"
	}
}

avahi-ui-libs_package() {
	short_desc="Avahi UI shared libraries"
	pkg_install() {
		vmove "usr/lib/libavahi-ui.so.*"
	}
}

avahi-ui-utils_package() {
	depends="desktop-file-utils avahi>=$version"
	short_desc="Avahi GTK+ utilities"
	pkg_install() {
		vmove usr/share/applications/bvnc.desktop
		vmove usr/share/applications/bssh.desktop
		vmove usr/share/man/man1/bssh.1
		if [ "$build_option_gir" ]; then
			vmove usr/bin/avahi-discover-standalone
		fi
		vmove usr/bin/bssh
		vmove usr/share/man/man1/bvnc.1
		vmove usr/bin/bvnc
		vmove usr/bin/bshell
	}
}
