summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlackNoxis <steven.darklight@gmail.com>2015-06-21 10:41:46 +0300
committerBlackNoxis <steven.darklight@gmail.com>2015-06-21 10:41:46 +0300
commit67cfaa660d1918e67e9ae1c7d9b4fa30a15eb4b1 (patch)
tree174cfa24b4c4b919c83465761b38699ead693341
parenta3c6ae3d3ccd28d1dc8e87733845d4e72af6479b (diff)
[avahi*] splited packages for avahi, so that avahi won`t get all of the repo installed
-rw-r--r--net-dns/avahi-base/Manifest1
-rw-r--r--net-dns/avahi-base/avahi-base-0.6.31-r1.ebuild168
-rw-r--r--net-dns/avahi-base/avahi-base-0.6.31-r5.ebuild224
-rw-r--r--net-dns/avahi-base/files/autoipd-openrc.sh32
-rw-r--r--net-dns/avahi-base/files/autoipd.sh52
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.30-automake-1.11.2.patch102
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.30-optional-gtk-utils.patch83
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.30-parallel.patch34
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.31-build-client-without-daemon.patch27
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.31-fix-install-avahi-discover.patch31
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.31-host-name-from-machine-id.patch85
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.31-install-exec-hook.patch11
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch30
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.31-workaround-systemd-stop-timeout.patch10
-rw-r--r--net-dns/avahi-base/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch22
-rw-r--r--net-dns/avahi-base/metadata.xml17
-rw-r--r--net-dns/avahi-gtk/Manifest1
-rw-r--r--net-dns/avahi-gtk/avahi-gtk-0.6.31-r1.ebuild70
-rw-r--r--net-dns/avahi-gtk/avahi-gtk-0.6.31-r5.ebuild170
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.30-automake-1.11.2.patch102
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.30-optional-gtk-utils.patch83
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.30-parallel.patch34
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.31-build-client-without-daemon.patch27
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.31-fix-install-avahi-discover.patch31
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.31-host-name-from-machine-id.patch85
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.31-install-exec-hook.patch11
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch30
-rw-r--r--net-dns/avahi-gtk/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch22
-rw-r--r--net-dns/avahi-gtk/metadata.xml8
-rw-r--r--net-dns/avahi-gtk3/Manifest1
-rw-r--r--net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r1.ebuild53
-rw-r--r--net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r5.ebuild155
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.30-automake-1.11.2.patch102
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.30-optional-gtk-utils.patch83
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.30-parallel.patch34
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.31-build-client-without-daemon.patch27
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.31-fix-install-avahi-discover.patch31
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.31-host-name-from-machine-id.patch85
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.31-install-exec-hook.patch11
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch30
-rw-r--r--net-dns/avahi-gtk3/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch22
-rw-r--r--net-dns/avahi-gtk3/metadata.xml8
-rw-r--r--net-dns/avahi-mono/Manifest1
-rw-r--r--net-dns/avahi-mono/avahi-mono-0.6.31-r1.ebuild63
-rw-r--r--net-dns/avahi-mono/avahi-mono-0.6.31-r5.ebuild170
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.30-automake-1.11.2.patch102
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.30-optional-gtk-utils.patch83
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.30-parallel.patch34
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.31-build-client-without-daemon.patch27
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.31-fix-install-avahi-discover.patch31
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.31-host-name-from-machine-id.patch85
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.31-install-exec-hook.patch11
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch30
-rw-r--r--net-dns/avahi-mono/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch22
-rw-r--r--net-dns/avahi-mono/metadata.xml8
-rw-r--r--net-dns/avahi-qt/Manifest1
-rw-r--r--net-dns/avahi-qt/avahi-qt-0.6.31-r1.ebuild51
-rw-r--r--net-dns/avahi-qt/avahi-qt-0.6.31-r5.ebuild155
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.30-automake-1.11.2.patch102
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.30-optional-gtk-utils.patch83
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.30-parallel.patch34
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.31-build-client-without-daemon.patch27
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.31-fix-install-avahi-discover.patch31
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.31-host-name-from-machine-id.patch85
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.31-install-exec-hook.patch11
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch30
-rw-r--r--net-dns/avahi-qt/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch22
-rw-r--r--net-dns/avahi-qt/metadata.xml8
-rw-r--r--net-dns/avahi/avahi-0.6.31-r5.ebuild26
-rw-r--r--net-dns/avahi/metadata.xml17
70 files changed, 3595 insertions, 0 deletions
diff --git a/net-dns/avahi-base/Manifest b/net-dns/avahi-base/Manifest
new file mode 100644
index 00000000..0206eaaa
--- /dev/null
+++ b/net-dns/avahi-base/Manifest
@@ -0,0 +1 @@
+DIST avahi-0.6.31.tar.gz 1268686 SHA256 8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48 SHA512 53eb00d570a274d841e1e6ad07da077950089ae39b4f7aa21fcd21cc5320b30b506b43e7e57e56198e155cc7bd289b779a48b2b2fc002dc6194a946110451858 WHIRLPOOL a6d97b87dfbb81be359ee03d8f32ebafdbb311bd596d686aeb55a2952ecb6c7c84466b1230e70392ffe23a20a56da7e0a5bd00c8dc1812b2156c0b4a8022144f
diff --git a/net-dns/avahi-base/avahi-base-0.6.31-r1.ebuild b/net-dns/avahi-base/avahi-base-0.6.31-r1.ebuild
new file mode 100644
index 00000000..e7b1c070
--- /dev/null
+++ b/net-dns/avahi-base/avahi-base-0.6.31-r1.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2013 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="3"
+
+WANT_AUTOMAKE=1.11
+PYTHON_DEPEND="python? 2"
+PYTHON_USE_WITH="gdbm"
+PYTHON_USE_WITH_OPT="python"
+
+DBUS_DEPEND=">=sys-apps/dbus-0.30"
+IUSE="autoipd bookmarks dbus doc gdbm howl-compat +introspection ipv6
+ mdnsresponder-compat python test"
+COMMON_DEPEND=">=dev-libs/libdaemon-0.14
+ dev-libs/expat
+ dev-libs/glib:2
+ gdbm? ( sys-libs/gdbm )
+ dbus? (
+ ${DBUS_DEPEND}
+ python? ( dev-python/dbus-python )
+ )
+ howl-compat? ( ${DBUS_DEPEND} )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.5 )
+ mdnsresponder-compat? ( ${DBUS_DEPEND} )
+ bookmarks? (
+ dev-python/twisted
+ dev-python/twisted-web
+ )
+ kernel_linux? ( sys-libs/libcap )
+ "
+AVAHI_MODULE_DEPEND="${COMMON_DEPEND}
+ doc? ( app-doc/doxygen )"
+AVAHI_MODULE_RDEPEND="${COMMON_DEPEND}
+ howl-compat? ( !net-misc/howl )
+ mdnsresponder-compat? ( !net-misc/mDNSResponder )"
+
+AVAHI_PATCHES=(
+ # Fix init scripts for >=openrc-0.9.0 (bug #383641)
+ "${FILESDIR}/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch"
+ # install-exec-local -> install-exec-hook
+ "${FILESDIR}"/${P/-base}-install-exec-hook.patch
+ # Backport host-name-from-machine-id patch, bug #466134
+ "${FILESDIR}"/${P/-base}-host-name-from-machine-id.patch
+ # Sabayon, workaround timeout on shutdown
+ "${FILESDIR}"/${PN/-base}-0.6.31-workaround-systemd-stop-timeout.patch
+)
+inherit eutils multilib python avahi
+
+pkg_setup() {
+ if use python; then
+ python_set_active_version 2
+ python_pkg_setup
+ fi
+}
+
+pkg_preinst() {
+ enewgroup netdev
+ enewgroup avahi
+ enewuser avahi -1 -1 -1 avahi
+
+ if use autoipd; then
+ enewgroup avahi-autoipd
+ enewuser avahi-autoipd -1 -1 -1 avahi-autoipd
+ fi
+}
+
+src_prepare() {
+ if use ipv6; then
+ sed -i \
+ -e s/use-ipv6=no/use-ipv6=yes/ \
+ avahi-daemon/avahi-daemon.conf || die
+ fi
+ avahi_src_prepare
+}
+
+src_configure() {
+ local myconf=""
+ if use python; then
+ myconf+=" $(use_enable dbus python-dbus)"
+ fi
+
+ # these require dbus enabled
+ if use mdnsresponder-compat || use howl-compat; then
+ myconf+=" --enable-dbus"
+ fi
+
+ myconf+="
+ $(use_enable test tests)
+ $(use_enable autoipd)
+ $(use_enable mdnsresponder-compat compat-libdns_sd)
+ $(use_enable howl-compat compat-howl)
+ $(use_enable doc doxygen-doc)
+ $(use_enable dbus)
+ $(use_enable python)
+ $(use_enable introspection)
+ $(use_enable gdbm)
+ --disable-qt4
+ --disable-gtk
+ --disable-gtk3
+ --disable-pygtk
+ --disable-mono"
+ if use python; then
+ myconf+=" $(use_enable dbus python-dbus)"
+ else
+ myconf+=" --disable-python-dbus"
+ fi
+ avahi_src_configure "${myconf}"
+}
+
+src_compile() {
+ emake || die "emake failed"
+ use doc && { emake avahi.devhelp || die ; }
+}
+
+src_install() {
+ emake install DESTDIR="${ED}" || die "make install failed"
+ use bookmarks || rm -f "${ED}"/usr/bin/avahi-bookmarks
+
+ use howl-compat && ln -s avahi-compat-howl.pc "${ED}"/usr/$(get_libdir)/pkgconfig/howl.pc
+ use mdnsresponder-compat && ln -s avahi-compat-libdns_sd/dns_sd.h "${ED}"/usr/include/dns_sd.h
+
+ if use autoipd; then
+ insinto /$(get_libdir)/rcscripts/net
+ doins "${FILESDIR}"/autoipd.sh || die
+
+ insinto /$(get_libdir)/rc/net
+ newins "${FILESDIR}"/autoipd-openrc.sh autoipd.sh || die
+ fi
+
+ dodoc docs/{AUTHORS,NEWS,README,TODO} || die
+
+ if use doc; then
+ dohtml -r doxygen/html/. || die
+ insinto /usr/share/devhelp/books/avahi
+ doins avahi.devhelp || die
+ fi
+
+ echo
+ elog "If you changed USE flags or did a version/revision bump, make sure"
+ elog "to rebuild all the modules:"
+ for mod in ${SUPPORTED_AVAHI_MODULES}; do
+ elog " net-dns/avahi-${mod}"
+ done
+ echo
+
+ avahi_src_install-cleanup
+}
+
+pkg_postrm() {
+ use python && python_mod_cleanup avahi
+}
+
+pkg_postinst() {
+ use python && python_mod_optimize avahi
+
+ if use autoipd; then
+ echo
+ elog "To use avahi-autoipd to configure your interfaces with IPv4LL (RFC3927)"
+ elog "addresses, just set config_<interface>=( autoipd ) in /etc/conf.d/net!"
+ fi
+
+ if use dbus; then
+ echo
+ elog "If this is your first install of avahi please reload your dbus config"
+ elog "with /etc/init.d/dbus reload before starting avahi-daemon!"
+ fi
+}
diff --git a/net-dns/avahi-base/avahi-base-0.6.31-r5.ebuild b/net-dns/avahi-base/avahi-base-0.6.31-r5.ebuild
new file mode 100644
index 00000000..894551df
--- /dev/null
+++ b/net-dns/avahi-base/avahi-base-0.6.31-r5.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2014 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+
+AVAHI_MODULE="${AVAHI_MODULE:-${PN/avahi-}}"
+MY_P=${P/-${AVAHI_MODULE}}
+MY_PN=${PN/-${AVAHI_MODULE}}
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+PYTHON_REQ_USE="gdbm"
+
+WANT_AUTOMAKE=1.11
+
+inherit autotools eutils flag-o-matic multilib multilib-minimal \
+ python-r1 systemd user
+
+DESCRIPTION="System which facilitates service discovery on a local network (base pkg)"
+HOMEPAGE="http://avahi.org/"
+SRC_URI="http://avahi.org/download/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
+IUSE="autoipd bookmarks dbus doc gdbm howl-compat +introspection ipv6 kernel_linux mdnsresponder-compat nls python selinux test"
+
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ python? ( dbus gdbm )
+ howl-compat? ( dbus )
+ mdnsresponder-compat? ( dbus )
+"
+
+COMMON_DEPEND="
+ dev-libs/libdaemon
+ dev-libs/expat
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ gdbm? ( sys-libs/gdbm[${MULTILIB_USEDEP}] )
+ dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ kernel_linux? ( sys-libs/libcap )
+ introspection? ( dev-libs/gobject-introspection )
+ python? (
+ ${PYTHON_DEPS}
+ dbus? ( dev-python/dbus-python )
+ )
+ selinux? ( sec-policy/selinux-avahi )
+ bookmarks? (
+ dev-python/twisted-core
+ dev-python/twisted-web
+ )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-util/intltool
+ virtual/pkgconfig[${MULTILIB_USEDEP}]
+ doc? (
+ app-doc/doxygen
+ )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ howl-compat? ( !net-misc/howl )
+ mdnsresponder-compat? ( !net-misc/mDNSResponder )
+"
+
+pkg_preinst() {
+ enewgroup netdev
+ enewgroup avahi
+ enewuser avahi -1 -1 -1 avahi
+
+ if use autoipd; then
+ enewgroup avahi-autoipd
+ enewuser avahi-autoipd -1 -1 -1 avahi-autoipd
+ fi
+}
+
+src_prepare() {
+ if use ipv6; then
+ sed -i \
+ -e s/use-ipv6=no/use-ipv6=yes/ \
+ avahi-daemon/avahi-daemon.conf || die
+ fi
+
+ sed -i\
+ -e "s:\\.\\./\\.\\./\\.\\./doc/avahi-docs/html/:../../../doc/${PF}/html/:" \
+ doxygen_to_devhelp.xsl || die
+
+ # Make gtk utils optional
+ epatch "${FILESDIR}"/${MY_PN}-0.6.30-optional-gtk-utils.patch
+
+ # Fix init scripts for >=openrc-0.9.0, bug #383641
+ epatch "${FILESDIR}"/${MY_PN}-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
+
+ # install-exec-local -> install-exec-hook
+ epatch "${FILESDIR}"/${MY_P}-install-exec-hook.patch
+
+ # Backport host-name-from-machine-id patch, bug #466134
+ epatch "${FILESDIR}"/${MY_P}-host-name-from-machine-id.patch
+
+ # Don't install avahi-discover unless ENABLE_GTK_UTILS, bug #359575
+ epatch "${FILESDIR}"/${MY_P}-fix-install-avahi-discover.patch
+
+ epatch "${FILESDIR}"/${MY_P}-so_reuseport-may-not-exist-in-running-kernel.patch
+
+ # allow building client without the daemon
+ epatch "${FILESDIR}"/${MY_P}-build-client-without-daemon.patch
+
+ # Drop DEPRECATED flags, bug #384743
+ sed -i -e 's:-D[A-Z_]*DISABLE_DEPRECATED=1::g' avahi-ui/Makefile.am || die
+
+ # Fix references to Lennart's home directory, bug #466210
+ sed -i -e 's/\/home\/lennart\/tmp\/avahi//g' man/* || die
+
+ # Prevent .pyc files in DESTDIR
+ >py-compile
+
+ eautoreconf
+
+ # bundled manpages
+ multilib_copy_sources
+}
+
+src_configure() {
+ # those steps should be done once-per-ebuild rather than per-ABI
+ use sh && replace-flags -O? -O0
+ use python && python_export_best
+
+ # We need to unset DISPLAY, else the configure script might have problems detecting the pygtk module
+ unset DISPLAY
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myconf=( --disable-static )
+
+ if use python; then
+ myconf+=(
+ $(multilib_native_use_enable dbus python-dbus)
+ )
+ fi
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # used by daemons only
+ --disable-libdaemon
+ --with-xml=none
+ )
+ fi
+
+ econf \
+ --localstatedir="${EPREFIX}/var" \
+ --with-distro=gentoo \
+ --disable-python-dbus \
+ --disable-pygtk \
+ --disable-xmltoman \
+ --disable-monodoc \
+ --disable-mono \
+ --enable-glib \
+ --enable-gobject \
+ $(multilib_native_use_enable test tests) \
+ $(multilib_native_use_enable autoipd) \
+ $(use_enable mdnsresponder-compat compat-libdns_sd) \
+ $(use_enable howl-compat compat-howl) \
+ $(multilib_native_use_enable doc doxygen-doc) \
+ $(use_enable dbus) \
+ $(multilib_native_use_enable python) \
+ $(use_enable nls) \
+ $(multilib_native_use_enable introspection) \
+ --disable-qt3 \
+ --disable-qt4 \
+ --disable-gtk \
+ --disable-gtk3 \
+ $(use_enable gdbm) \
+ $(systemd_with_unitdir) \
+ "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ emake
+
+ multilib_is_native_abi && use doc && emake avahi.devhelp
+}
+
+multilib_src_install() {
+ emake install DESTDIR="${D}"
+ rm -f "${ED}"/usr/bin/avahi-bookmarks
+
+ use howl-compat && dosym avahi-compat-howl.pc /usr/$(get_libdir)/pkgconfig/howl.pc
+ use mdnsresponder-compat && dosym avahi-compat-libdns_sd/dns_sd.h /usr/include/dns_sd.h
+
+ if multilib_is_native_abi && use doc; then
+ dohtml -r doxygen/html/. || die
+ insinto /usr/share/devhelp/books/avahi
+ doins avahi.devhelp || die
+ fi
+}
+
+multilib_src_install_all() {
+ if use autoipd; then
+ insinto /$(get_libdir)/rcscripts/net
+ doins "${FILESDIR}"/autoipd.sh
+
+ insinto /$(get_libdir)/rc/net
+ newins "${FILESDIR}"/autoipd-openrc.sh autoipd.sh
+ fi
+
+ dodoc docs/{AUTHORS,NEWS,README,TODO}
+
+ prune_libtool_files --all
+}
+
+pkg_postinst() {
+ if use autoipd; then
+ elog
+ elog "To use avahi-autoipd to configure your interfaces with IPv4LL (RFC3927)"
+ elog "addresses, just set config_<interface>=( autoipd ) in /etc/conf.d/net!"
+ elog
+ fi
+}
diff --git a/net-dns/avahi-base/files/autoipd-openrc.sh b/net-dns/avahi-base/files/autoipd-openrc.sh
new file mode 100644
index 00000000..dec3aa05
--- /dev/null
+++ b/net-dns/avahi-base/files/autoipd-openrc.sh
@@ -0,0 +1,32 @@
+# Copyright (C) 2004-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Contributed by Sven Wegener (swegener@gentoo.org)
+
+_config_vars="$_config_vars autoipd"
+
+autoipd_depend() {
+ program /usr/sbin/avahi-autoipd
+ after interface
+}
+
+autoipd_start() {
+ _exists true || return 1
+
+ eval args=\$autoipd_${IFVAR}
+
+ ebegin "Starting avahi-autoipd"
+ /usr/sbin/avahi-autoipd --daemonize --syslog --wait ${args} "${IFACE}"
+ eend "${?}" || return 1
+
+ _show_address
+
+ return 0
+}
+
+autoipd_stop() {
+ /usr/sbin/avahi-autoipd --check --syslog "${IFACE}" || return 0
+
+ ebegin "Stopping avahi-autoipd"
+ /usr/sbin/avahi-autoipd --kill --syslog "${IFACE}"
+ eend "${?}"
+}
diff --git a/net-dns/avahi-base/files/autoipd.sh b/net-dns/avahi-base/files/autoipd.sh
new file mode 100644
index 00000000..89d02e33
--- /dev/null
+++ b/net-dns/avahi-base/files/autoipd.sh
@@ -0,0 +1,52 @@
+# Copyright (c) 2004-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Contributed by Sven Wegener (swegener@gentoo.org)
+
+# void autoipd_depend(void)
+#
+# Sets up the dependencies for the module
+autoipd_depend() {
+ after interface
+}
+
+# void autoipd_expose(void)
+#
+# Expose variables that can be configured
+autoipd_expose() {
+ variables autoipd
+}
+
+# bool autoipd_start(char *iface)
+#
+# Tries to configure the interface via avahi-autoipd
+autoipd_start() {
+ local iface="${1}" ifvar="$(bash_variable "${iface}")" opts="autoipd_${ifvar}" addr=""
+
+ interface_exists "${iface}" true || return 1
+
+ ebegin "Starting avahi-autoipd"
+ if /usr/sbin/avahi-autoipd --daemonize --syslog --wait ${!opts} "${iface}"
+ then
+ eend 0
+ addr="$(interface_get_address "${iface}")"
+ einfo "${iface} received address ${addr}"
+ return 0
+ fi
+
+ eend "${?}" "Failed to get address via avahi-autoipd!"
+}
+
+# bool autoipd_stop(char *iface)
+#
+# Stops a running avahi-autoipd instance
+autoipd_stop() {
+ local iface="${1}"
+
+ /usr/sbin/avahi-autoipd --check --syslog "${iface}" || return 0
+
+ ebegin "Stopping avahi-autoipd"
+ /usr/sbin/avahi-autoipd --kill --syslog "${iface}"
+ eend "${?}" "Failed to stop running avahi-autoipd instance!"
+}
+
+# vim: set ts=4 :
diff --git a/net-dns/avahi-base/files/avahi-0.6.30-automake-1.11.2.patch b/net-dns/avahi-base/files/avahi-0.6.30-automake-1.11.2.patch
new file mode 100644
index 00000000..be385f6c
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.30-automake-1.11.2.patch
@@ -0,0 +1,102 @@
+http://bugs.gentoo.org/397477
+
+--- avahi-python/avahi/Makefile.am
++++ avahi-python/avahi/Makefile.am
+@@ -31,7 +31,7 @@
+ -e 's,@FIRST_KEY\@,key = self.db.firstkey(),g' \
+ -e 's,@CHECK_KEY\@,while key is not None:,g' \
+ -e 's,@NEXT_KEY\@,key = self.db.nextkey(key),g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+@@ -44,7 +44,7 @@
+ -e 's,@FIRST_KEY\@,keys = self.db.keys(),g' \
+ -e 's,@CHECK_KEY\@,for key in keys:,g' \
+ -e 's,@NEXT_KEY\@,,g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+--- avahi-python/avahi/ServiceTypeDatabase.py.in
++++ avahi-python/avahi/ServiceTypeDatabase.py.in
+@@ -26,7 +26,7 @@
+ class ServiceTypeDatabase:
+ """ServiceTypeDatabase maps service types to descriptions"""
+
+- def __init__(self, filename = "@pkglibdir@/service-types.db"):
++ def __init__(self, filename = "@pkgdatadir@/service-types.db"):
+
+ self.db = @DBM@.open(filename, "r")
+
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -62,18 +62,18 @@
+
+ if HAVE_GDBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_la_LIBADD += -lgdbm
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_gtk3_la_LIBADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ bin_PROGRAMS = bssh
+--- avahi-utils/Makefile.am
++++ avahi-utils/Makefile.am
+@@ -30,13 +30,13 @@
+
+ if HAVE_GDBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ avahi_browse_LDADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ avahi_resolve_SOURCES = avahi-resolve.c sigint.c sigint.h
+--- service-type-database/Makefile.am
++++ service-type-database/Makefile.am
+@@ -18,13 +18,12 @@
+ EXTRA_DIST=build-db.in service-types
+
+ pkgdata_DATA=service-types
+-pkglib_DATA=
+
+ if HAVE_PYTHON
+ if HAVE_GDBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db
++pkgdata_DATA+=service-types.db
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
+@@ -41,7 +40,7 @@
+ if HAVE_DBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db.pag service-types.db.dir
++pkgdata_DATA+=service-types.db.pag service-types.db.dir
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
diff --git a/net-dns/avahi-base/files/avahi-0.6.30-optional-gtk-utils.patch b/net-dns/avahi-base/files/avahi-0.6.30-optional-gtk-utils.patch
new file mode 100644
index 00000000..2c615a2b
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.30-optional-gtk-utils.patch
@@ -0,0 +1,83 @@
+--- avahi-discover-standalone/Makefile.am
++++ avahi-discover-standalone/Makefile.am
+@@ -23,7 +23,7 @@
+ # This cool debug trap works on i386/gcc only
+ AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
+
+-if HAVE_GTK2OR3
++if ENABLE_GTK_UTILS
+ if HAVE_GLIB
+ bin_PROGRAMS = \
+ avahi-discover-standalone
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -76,6 +76,7 @@
+ libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
+ endif
+
++if ENABLE_GTK_UTILS
+ bin_PROGRAMS = bssh
+ desktop_DATA += bssh.desktop bvnc.desktop
+ @INTLTOOL_DESKTOP_RULE@
+@@ -102,6 +103,7 @@
+ bvnc.desktop.in: bvnc.desktop.in.in
+ $(AM_V_GEN)sed -e 's,@bindir\@,$(bindir),g' $< > $@
+
++endif # ENABLE_GTK_UTILS
+ endif # HAVE_GLIB
+ endif
+ endif
+--- configure.ac
++++ configure.ac
+@@ -564,7 +564,29 @@
+ fi
+ AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
+
+-AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes" )
++#
++# Check for GTK+ Utils
++#
++AC_ARG_ENABLE(gtk-utils,
++ AS_HELP_STRING([--disable-gtk-utils],[Disable GTK+ utilities]),
++ [case "${enableval}" in
++ yes) WANT_GTK_UTILS=yes ;;
++ no) WANT_GTK_UTILS=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for --enable-gtk-utils) ;;
++ esac],
++ [WANT_GTK_UTILS=yes])
++
++ENABLE_GTK_UTILS=no
++HAVE_GTK2OR3=no
++if test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes"; then
++ HAVE_GTK2OR3=yes
++ if test "x$WANT_GTK_UTILS" = "xyes"; then
++ ENABLE_GTK_UTILS=yes
++ fi
++fi
++
++AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK2OR3" = "xyes")
++AM_CONDITIONAL(ENABLE_GTK_UTILS, test "x$ENABLE_GTK_UTILS" = "xyes")
+
+ #
+ # D-Bus
+@@ -1199,11 +1221,6 @@
+ ENABLE_AUTOIPD="no (You need libdaemon!)"
+ fi
+
+-HAVE_GTK2OR3=no
+-if test "x$HAVE_GTK" = "xyes" -o "x$HAVE_GTK3" = "xyes" ; then
+- HAVE_GTK2OR3=yes
+-fi
+-
+ BUILD_UI="no"
+ if test "x$HAVE_GTK2OR3" = "xyes" -a "x$BUILD_CLIENT" = "xyes" ; then
+ BUILD_UI="yes"
+@@ -1223,7 +1240,7 @@
+ Building avahi-python: ${BUILD_PYTHON}
+ Building libavahi-glib: ${HAVE_GLIB}
+ Building libavahi-gobject: ${BUILD_GOBJECT}
+- Building avahi-discover-standalone: ${HAVE_GTK2OR3}
++ Building avahi-discover-standalone: ${ENABLE_GTK_UTILS}
+ Building libavahi-qt3: ${HAVE_QT3}
+ Building libavahi-qt4: ${HAVE_QT4}
+ Building avahi-sharp: ${HAVE_MONO}
diff --git a/net-dns/avahi-base/files/avahi-0.6.30-parallel.patch b/net-dns/avahi-base/files/avahi-0.6.30-parallel.patch
new file mode 100644
index 00000000..a75f9910
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.30-parallel.patch
@@ -0,0 +1,34 @@
+From cb10a844f9e91322aca91340b7adc0db19c96b36 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Mon, 30 Apr 2012 17:07:41 -0700
+Subject: [PATCH] build-sys: fix parallel install in avahi-utils
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The moment install-exec-local is called, we might still not have
+created ${DESTDIR}/${bindir} so we should make sure to create it
+first, and then try to chdir into it.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ avahi-utils/Makefile.am | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/avahi-utils/Makefile.am b/avahi-utils/Makefile.am
+index a644b4a..1abc79a 100644
+--- a/avahi-utils/Makefile.am
++++ b/avahi-utils/Makefile.am
+@@ -54,7 +54,8 @@ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+ install-exec-local:
+- cd $(DESTDIR)/$(bindir) && \
++ $(mkdir_p) $(DESTDIR)/$(bindir) && \
++ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
+ $(LN_S) avahi-resolve avahi-resolve-address && \
+--
+1.7.8.6
+
diff --git a/net-dns/avahi-base/files/avahi-0.6.31-build-client-without-daemon.patch b/net-dns/avahi-base/files/avahi-0.6.31-build-client-without-daemon.patch
new file mode 100644
index 00000000..df0c420f
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.31-build-client-without-daemon.patch
@@ -0,0 +1,27 @@
+From ce3b83de6aa689c0cefe0b1e85c03a627b537099 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 12 May 2014 19:46:22 +0200
+Subject: [PATCH] Allow building client without the daemon.
+
+There's no good reason to disallow that, and that's what we specifically
+want to do for multilib.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0e190ba..c56cf01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1185,7 +1185,7 @@ fi
+
+ BUILD_CLIENT="no (You need avahi-daemon and D-Bus!)"
+
+-if test "x$BUILD_DAEMON" = "xyes" -a "x$HAVE_DBUS" = "xyes" ; then
++if "x$HAVE_DBUS" = "xyes" ; then
+ BUILD_CLIENT=yes
+ fi
+
+--
+1.9.3
+
diff --git a/net-dns/avahi-base/files/avahi-0.6.31-fix-install-avahi-discover.patch b/net-dns/avahi-base/files/avahi-0.6.31-fix-install-avahi-discover.patch
new file mode 100644
index 00000000..62ba967c
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.31-fix-install-avahi-discover.patch
@@ -0,0 +1,31 @@
+--- avahi-0.6.30.old/avahi-python/avahi-discover/Makefile.am 2010-06-28 23:30:34.000000000 -0400
++++ avahi-0.6.30/avahi-python/avahi-discover/Makefile.am 2012-04-21 18:02:01.642934527 -0400
+@@ -22,6 +22,7 @@
+ avahi-discover.py \
+ avahi-discover.desktop.in.in
+
++if ENABLE_GTK_UTILS
+ if HAVE_PYTHON
+ if HAVE_PYTHON_DBUS
+ if HAVE_PYGTK
+@@ -67,3 +68,4 @@
+ endif
+ endif
+ endif
++endif
+--- avahi-0.6.30.old/man/Makefile.am 2012-04-21 18:10:45.690900742 -0400
++++ avahi-0.6.30/man/Makefile.am 2012-04-21 18:09:15.146906578 -0400
+@@ -65,11 +65,13 @@
+ man_MANS += \
+ avahi-bookmarks.1
+ if HAVE_GTK
++if ENABLE_GTK_UTILS
+ man_MANS += \
+ avahi-discover.1
+ endif
+ endif
+ endif
++endif
+
+ if ENABLE_AUTOIPD
+ if HAVE_LIBDAEMON
diff --git a/net-dns/avahi-base/files/avahi-0.6.31-host-name-from-machine-id.patch b/net-dns/avahi-base/files/avahi-0.6.31-host-name-from-machine-id.patch
new file mode 100644
index 00000000..17ecba52
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.31-host-name-from-machine-id.patch
@@ -0,0 +1,85 @@
+From: David Zeuthen <zeuthen@chromium.org>
+Date: Tue, 5 Mar 2013 19:52:38 +0000 (-0800)
+Subject: avahi-daemon: add option "host-name-from-machine-id="
+X-Git-Url: http://git.0pointer.de/?p=avahi.git;a=commitdiff_plain;h=147cdce70b22ae7cee9fb4fe123db40952f31c9e
+
+avahi-daemon: add option "host-name-from-machine-id="
+
+Signed-off-by: David Zeuthen <zeuthen@chromium.org>
+---
+
+diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c
+index d46f40a..8c28fd6 100644
+--- a/avahi-daemon/main.c
++++ b/avahi-daemon/main.c
+@@ -65,6 +65,7 @@
+ #include <avahi-core/publish.h>
+ #include <avahi-core/dns-srv-rr.h>
+ #include <avahi-core/log.h>
++#include <avahi-core/util.h>
+
+ #ifdef ENABLE_CHROOT
+ #include "chroot.h"
+@@ -576,6 +577,29 @@ static int parse_usec(const char *s, AvahiUsec *u) {
+ return 0;
+ }
+
++static char *get_machine_id(void) {
++ int fd;
++ char buf[32];
++
++ fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1 && errno == ENOENT)
++ fd = open("/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1)
++ return NULL;
++
++ /* File is on a filesystem so we never get EINTR or partial reads */
++ if (read(fd, buf, sizeof buf) != sizeof buf) {
++ close(fd);
++ return NULL;
++ }
++ close(fd);
++
++ /* Contents can be lower, upper and even mixed case so normalize */
++ avahi_strdown(buf);
++
++ return avahi_strndup(buf, sizeof buf);
++}
++
+ static int load_config_file(DaemonConfig *c) {
+ int r = -1;
+ AvahiIniFile *f;
+@@ -631,6 +655,15 @@ static int load_config_file(DaemonConfig *c) {
+ c->server_config.use_iff_running = is_yes(p->value);
+ else if (strcasecmp(p->key, "disallow-other-stacks") == 0)
+ c->server_config.disallow_other_stacks = is_yes(p->value);
++ else if (strcasecmp(p->key, "host-name-from-machine-id") == 0) {
++ if (*(p->value) == 'y' || *(p->value) == 'Y') {
++ char *machine_id = get_machine_id();
++ if (machine_id != NULL) {
++ avahi_free(c->server_config.host_name);
++ c->server_config.host_name = machine_id;
++ }
++ }
++ }
+ #ifdef HAVE_DBUS
+ else if (strcasecmp(p->key, "enable-dbus") == 0) {
+
+diff --git a/man/avahi-daemon.conf.5.xml.in b/man/avahi-daemon.conf.5.xml.in
+index bea7ed5..2d15017 100644
+--- a/man/avahi-daemon.conf.5.xml.in
++++ b/man/avahi-daemon.conf.5.xml.in
+@@ -40,6 +40,12 @@
+ </option>
+
+ <option>
++ <p><opt>host-name-from-machine-id=</opt> Takes a boolean
++ value ("yes" or "no"). If set to "yes" avahi-daemon
++ will use the machine-id as name on the LAN.</p>
++ </option>
++
++ <option>
+ <p><opt>domain-name=</opt> Set the default domain name avahi-daemon
+ tries to register its host name and services on the LAN in. If
+ omitted defaults to ".local".</p>
diff --git a/net-dns/avahi-base/files/avahi-0.6.31-install-exec-hook.patch b/net-dns/avahi-base/files/avahi-0.6.31-install-exec-hook.patch
new file mode 100644
index 00000000..d9a7bc34
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.31-install-exec-hook.patch
@@ -0,0 +1,11 @@
+--- avahi-0.6.31/avahi-utils/Makefile.am
++++ avahi-0.6.31/avahi-utils/Makefile.am
+@@ -53,7 +53,7 @@
+ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+-install-exec-local:
++install-exec-hook:
+ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
diff --git a/net-dns/avahi-base/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch b/net-dns/avahi-base/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
new file mode 100644
index 00000000..9c23ca5e
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/484212
+
+Description: SO_REUSEPORT may not exist in running kernel
+ When userspace defines SO_REUSEPORT we will attempt to enable socket
+ port number reuse. However if the running kernel does not support
+ this call it will fail preventing daemon startup. If this call is
+ present but fails ENOPROTOOPT then we know that actually the kernel
+ does not support it and we should continue as if we did not have the
+ call at all. (LP: #1228204)
+ .
+ This patch could be removed from the debian package after jessie release.
+Author: Andy Whitcroft <apw@canonical.com>
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1228204
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732009
+Last-Update: 2013-09-20
+
+Index: avahi-0.6.31/avahi-core/socket.c
+===================================================================
+--- avahi-0.6.31.orig/avahi-core/socket.c 2013-09-20 16:36:50.000000000 +0100
++++ avahi-0.6.31/avahi-core/socket.c 2013-09-20 16:38:23.781863644 +0100
+@@ -177,7 +177,8 @@
+ yes = 1;
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("SO_REUSEPORT failed: %s", strerror(errno));
+- return -1;
++ if (errno != ENOPROTOOPT)
++ return -1;
+ }
+ #endif
+
diff --git a/net-dns/avahi-base/files/avahi-0.6.31-workaround-systemd-stop-timeout.patch b/net-dns/avahi-base/files/avahi-0.6.31-workaround-systemd-stop-timeout.patch
new file mode 100644
index 00000000..947ba9ec
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.31-workaround-systemd-stop-timeout.patch
@@ -0,0 +1,10 @@
+--- a/avahi-daemon/avahi-daemon.service.in
++++ b/avahi-daemon/avahi-daemon.service.in
+@@ -24,6 +24,7 @@ Type=dbus
+ BusName=org.freedesktop.Avahi
+ ExecStart=@sbindir@/avahi-daemon -s
+ ExecReload=@sbindir@/avahi-daemon -r
++TimeoutStopSec=5
+ NotifyAccess=main
+
+ [Install]
diff --git a/net-dns/avahi-base/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch b/net-dns/avahi-base/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
new file mode 100644
index 00000000..394f6d34
--- /dev/null
+++ b/net-dns/avahi-base/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
@@ -0,0 +1,22 @@
+--- avahi-0.6.30/initscript/gentoo/avahi-daemon.in
++++ avahi-0.6.30/initscript/gentoo/avahi-daemon.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ before netmount nfsmount
+--- avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
++++ avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ need avahi-daemon
diff --git a/net-dns/avahi-base/metadata.xml b/net-dns/avahi-base/metadata.xml
new file mode 100644
index 00000000..9e286f8b
--- /dev/null
+++ b/net-dns/avahi-base/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>lxnay@gentoo.org</email>
+</maintainer>
+<use>
+ <flag name='autoipd'>Build and install the IPv4LL (RFC3927) network address
+ configuration daemon</flag>
+ <flag name='bookmarks'>Install the avahi-bookmarks application (requires
+ <pkg>dev-python/twisted</pkg>)</flag>
+ <flag name='howl-compat'>Enable compat libraries for howl</flag>
+ <flag name='mdnsresponder-compat'>Enable compat libraries for
+ mDNSResponder</flag>
+</use>
+</pkgmetadata>
diff --git a/net-dns/avahi-gtk/Manifest b/net-dns/avahi-gtk/Manifest
new file mode 100644
index 00000000..0206eaaa
--- /dev/null
+++ b/net-dns/avahi-gtk/Manifest
@@ -0,0 +1 @@
+DIST avahi-0.6.31.tar.gz 1268686 SHA256 8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48 SHA512 53eb00d570a274d841e1e6ad07da077950089ae39b4f7aa21fcd21cc5320b30b506b43e7e57e56198e155cc7bd289b779a48b2b2fc002dc6194a946110451858 WHIRLPOOL a6d97b87dfbb81be359ee03d8f32ebafdbb311bd596d686aeb55a2952ecb6c7c84466b1230e70392ffe23a20a56da7e0a5bd00c8dc1812b2156c0b4a8022144f
diff --git a/net-dns/avahi-gtk/avahi-gtk-0.6.31-r1.ebuild b/net-dns/avahi-gtk/avahi-gtk-0.6.31-r1.ebuild
new file mode 100644
index 00000000..7200ad7f
--- /dev/null
+++ b/net-dns/avahi-gtk/avahi-gtk-0.6.31-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2013 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="3"
+
+IUSE="python utils dbus"
+COMMON_DEPEND="=net-dns/avahi-base-${PVR}[dbus=,python=]
+ >=x11-libs/gtk+-2.14.0:2
+ python? ( >=dev-python/pygtk-2 )"
+AVAHI_MODULE_DEPEND="${COMMON_DEPEND}"
+AVAHI_MODULE_RDEPEND="${COMMON_DEPEND}"
+
+WANT_AUTOMAKE=1.11
+AVAHI_PATCHES=(
+ # install-exec-local -> install-exec-hook
+ "${FILESDIR}"/${P/-gtk}-install-exec-hook.patch
+ # Backport host-name-from-machine-id patch, bug #466134
+ "${FILESDIR}"/${P/-gtk}-host-name-from-machine-id.patch
+ # Make gtk utils optional
+ "${FILESDIR}"/${PN/-gtk}-0.6.30-optional-gtk-utils.patch
+)
+inherit eutils python avahi
+
+src_configure() {
+ local myconf=" --enable-gtk
+ --disable-gtk3
+ --disable-mono
+ $(use_enable dbus)
+ $(use_enable utils gtk-utils)
+ --enable-pygtk"
+ if use python; then
+ myconf+=" $(use_enable dbus python-dbus)"
+ fi
+ avahi_src_configure "${myconf}"
+}
+
+src_compile() {
+ for target in avahi-common avahi-client avahi-glib avahi-ui; do
+ cd "${S}"/${target} || die
+ emake || die
+ done
+ cd "${S}" || die
+ emake avahi-ui.pc || die
+}
+
+src_install() {
+ cd "${S}"/avahi-ui || die
+ emake install DESTDIR="${ED}" || die
+ if use python; then
+ cd "${S}"/avahi-python/avahi-discover || die
+ emake install DESTDIR="${ED}" || die
+ fi
+ cd "${S}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins avahi-ui.pc
+
+ avahi_src_install-cleanup
+}
+
+pkg_postrm() {
+ use python && python_mod_cleanup $(use dbus && echo avahi_discover)
+}
+
+pkg_postinst() {
+ use python && python_mod_optimize avahi $(use dbus && echo avahi_discover)
+}
+
+
diff --git a/net-dns/avahi-gtk/avahi-gtk-0.6.31-r5.ebuild b/net-dns/avahi-gtk/avahi-gtk-0.6.31-r5.ebuild
new file mode 100644
index 00000000..b7061539
--- /dev/null
+++ b/net-dns/avahi-gtk/avahi-gtk-0.6.31-r5.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2014 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+
+AVAHI_MODULE="${AVAHI_MODULE:-${PN/avahi-}}"
+MY_P=${P/-${AVAHI_MODULE}}
+MY_PN=${PN/-${AVAHI_MODULE}}
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+PYTHON_REQ_USE="gdbm"
+
+WANT_AUTOMAKE=1.11
+
+inherit autotools eutils flag-o-matic multilib multilib-minimal \
+ python-r1 systemd user
+
+DESCRIPTION="System which facilitates service discovery on a local network (gtk pkg)"
+HOMEPAGE="http://avahi.org/"
+SRC_URI="http://avahi.org/download/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
+IUSE="dbus gdbm introspection nls python utils"
+
+S="${WORKDIR}/${MY_P}"
+
+COMMON_DEPEND="
+ ~net-dns/avahi-base-${PV}[dbus=,gdbm=,introspection=,nls=,python=,${MULTILIB_USEDEP}]
+ x11-libs/gtk+:2
+ python? ( dev-python/pygtk )
+"
+
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+src_prepare() {
+ # Make gtk utils optional
+ epatch "${FILESDIR}"/${MY_PN}-0.6.30-optional-gtk-utils.patch
+
+ # Fix init scripts for >=openrc-0.9.0, bug #383641
+ epatch "${FILESDIR}"/${MY_PN}-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
+
+ # install-exec-local -> install-exec-hook
+ epatch "${FILESDIR}"/${MY_P}-install-exec-hook.patch
+
+ # Backport host-name-from-machine-id patch, bug #466134
+ epatch "${FILESDIR}"/${MY_P}-host-name-from-machine-id.patch
+
+ # Don't install avahi-discover unless ENABLE_GTK_UTILS, bug #359575
+ epatch "${FILESDIR}"/${MY_P}-fix-install-avahi-discover.patch
+
+ epatch "${FILESDIR}"/${MY_P}-so_reuseport-may-not-exist-in-running-kernel.patch
+
+ # allow building client without the daemon
+ epatch "${FILESDIR}"/${MY_P}-build-client-without-daemon.patch
+
+ # Drop DEPRECATED flags, bug #384743
+ sed -i -e 's:-D[A-Z_]*DISABLE_DEPRECATED=1::g' avahi-ui/Makefile.am || die
+
+ # Fix references to Lennart's home directory, bug #466210
+ sed -i -e 's/\/home\/lennart\/tmp\/avahi//g' man/* || die
+
+ # Prevent .pyc files in DESTDIR
+ >py-compile
+
+ eautoreconf
+
+ # bundled manpages
+ multilib_copy_sources
+}
+
+src_configure() {
+ # those steps should be done once-per-ebuild rather than per-ABI
+ use sh && replace-flags -O? -O0
+ use python && python_export_best
+
+ # We need to unset DISPLAY, else the configure script might have problems detecting the pygtk module
+ unset DISPLAY
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myconf=( --disable-static )
+
+ if use python; then
+ myconf+=(
+ $(multilib_native_use_enable dbus python-dbus)
+ --enable-pygtk
+ )
+ fi
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # used by daemons only
+ --disable-libdaemon
+ --with-xml=none
+ )
+ fi
+
+ econf \
+ --localstatedir="${EPREFIX}/var" \
+ --with-distro=gentoo \
+ --disable-python-dbus \
+ --disable-xmltoman \
+ --disable-monodoc \
+ --disable-pygtk \
+ --enable-glib \
+ --enable-gobject \
+ $(use_enable dbus) \
+ $(multilib_native_use_enable python) \
+ $(use_enable nls) \
+ $(multilib_native_use_enable introspection) \
+ --disable-qt3 \
+ --disable-qt4 \
+ $(multilib_is_native_abi && echo -n --enable-gtk || echo -n --disable-gtk) \
+ $(multilib_is_native_abi && echo -n --enable-gtk-utils || echo -n --disable-gtk-utils) \
+ --disable-gtk3 \
+ $(use_enable gdbm) \
+ $(systemd_with_unitdir) \
+ "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ for target in avahi-common avahi-client avahi-glib avahi-ui; do
+ cd "${BUILD_DIR}"/${target} || die
+ emake || die
+ done
+ cd "${BUILD_DIR}" || die
+ emake avahi-ui.pc || die
+ fi
+}
+
+multilib_src_install() {
+ mkdir -p "${D}/usr/bin" || die
+
+ if multilib_is_native_abi; then
+ cd "${BUILD_DIR}"/avahi-ui || die
+ emake DESTDIR="${D}" install || die
+ if use python; then
+ cd "${BUILD_DIR}"/avahi-python/avahi-discover || die
+ emake install DESTDIR="${D}" || die
+ fi
+ cd "${BUILD_DIR}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins avahi-ui.pc
+
+ # Workaround for avahi-ui.h collision between avahi-gtk and avahi-gtk3
+ root_avahi_ui="${ROOT}usr/include/avahi-ui/avahi-ui.h"
+ if [ -e "${root_avahi_ui}" ]; then
+ rm -f "${D}usr/include/avahi-ui/avahi-ui.h"
+ fi
+
+ # provided by avahi-gtk3
+ rm "${D}"usr/bin/bshell || die
+ rm "${D}"usr/bin/bssh || die
+ rm "${D}"usr/bin/bvnc || die
+ rm "${D}"usr/share/applications/bssh.desktop || die
+ rm "${D}"usr/share/applications/bvnc.desktop || die
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+}
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.30-automake-1.11.2.patch b/net-dns/avahi-gtk/files/avahi-0.6.30-automake-1.11.2.patch
new file mode 100644
index 00000000..be385f6c
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.30-automake-1.11.2.patch
@@ -0,0 +1,102 @@
+http://bugs.gentoo.org/397477
+
+--- avahi-python/avahi/Makefile.am
++++ avahi-python/avahi/Makefile.am
+@@ -31,7 +31,7 @@
+ -e 's,@FIRST_KEY\@,key = self.db.firstkey(),g' \
+ -e 's,@CHECK_KEY\@,while key is not None:,g' \
+ -e 's,@NEXT_KEY\@,key = self.db.nextkey(key),g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+@@ -44,7 +44,7 @@
+ -e 's,@FIRST_KEY\@,keys = self.db.keys(),g' \
+ -e 's,@CHECK_KEY\@,for key in keys:,g' \
+ -e 's,@NEXT_KEY\@,,g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+--- avahi-python/avahi/ServiceTypeDatabase.py.in
++++ avahi-python/avahi/ServiceTypeDatabase.py.in
+@@ -26,7 +26,7 @@
+ class ServiceTypeDatabase:
+ """ServiceTypeDatabase maps service types to descriptions"""
+
+- def __init__(self, filename = "@pkglibdir@/service-types.db"):
++ def __init__(self, filename = "@pkgdatadir@/service-types.db"):
+
+ self.db = @DBM@.open(filename, "r")
+
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -62,18 +62,18 @@
+
+ if HAVE_GDBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_la_LIBADD += -lgdbm
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_gtk3_la_LIBADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ bin_PROGRAMS = bssh
+--- avahi-utils/Makefile.am
++++ avahi-utils/Makefile.am
+@@ -30,13 +30,13 @@
+
+ if HAVE_GDBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ avahi_browse_LDADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ avahi_resolve_SOURCES = avahi-resolve.c sigint.c sigint.h
+--- service-type-database/Makefile.am
++++ service-type-database/Makefile.am
+@@ -18,13 +18,12 @@
+ EXTRA_DIST=build-db.in service-types
+
+ pkgdata_DATA=service-types
+-pkglib_DATA=
+
+ if HAVE_PYTHON
+ if HAVE_GDBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db
++pkgdata_DATA+=service-types.db
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
+@@ -41,7 +40,7 @@
+ if HAVE_DBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db.pag service-types.db.dir
++pkgdata_DATA+=service-types.db.pag service-types.db.dir
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.30-optional-gtk-utils.patch b/net-dns/avahi-gtk/files/avahi-0.6.30-optional-gtk-utils.patch
new file mode 100644
index 00000000..2c615a2b
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.30-optional-gtk-utils.patch
@@ -0,0 +1,83 @@
+--- avahi-discover-standalone/Makefile.am
++++ avahi-discover-standalone/Makefile.am
+@@ -23,7 +23,7 @@
+ # This cool debug trap works on i386/gcc only
+ AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
+
+-if HAVE_GTK2OR3
++if ENABLE_GTK_UTILS
+ if HAVE_GLIB
+ bin_PROGRAMS = \
+ avahi-discover-standalone
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -76,6 +76,7 @@
+ libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
+ endif
+
++if ENABLE_GTK_UTILS
+ bin_PROGRAMS = bssh
+ desktop_DATA += bssh.desktop bvnc.desktop
+ @INTLTOOL_DESKTOP_RULE@
+@@ -102,6 +103,7 @@
+ bvnc.desktop.in: bvnc.desktop.in.in
+ $(AM_V_GEN)sed -e 's,@bindir\@,$(bindir),g' $< > $@
+
++endif # ENABLE_GTK_UTILS
+ endif # HAVE_GLIB
+ endif
+ endif
+--- configure.ac
++++ configure.ac
+@@ -564,7 +564,29 @@
+ fi
+ AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
+
+-AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes" )
++#
++# Check for GTK+ Utils
++#
++AC_ARG_ENABLE(gtk-utils,
++ AS_HELP_STRING([--disable-gtk-utils],[Disable GTK+ utilities]),
++ [case "${enableval}" in
++ yes) WANT_GTK_UTILS=yes ;;
++ no) WANT_GTK_UTILS=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for --enable-gtk-utils) ;;
++ esac],
++ [WANT_GTK_UTILS=yes])
++
++ENABLE_GTK_UTILS=no
++HAVE_GTK2OR3=no
++if test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes"; then
++ HAVE_GTK2OR3=yes
++ if test "x$WANT_GTK_UTILS" = "xyes"; then
++ ENABLE_GTK_UTILS=yes
++ fi
++fi
++
++AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK2OR3" = "xyes")
++AM_CONDITIONAL(ENABLE_GTK_UTILS, test "x$ENABLE_GTK_UTILS" = "xyes")
+
+ #
+ # D-Bus
+@@ -1199,11 +1221,6 @@
+ ENABLE_AUTOIPD="no (You need libdaemon!)"
+ fi
+
+-HAVE_GTK2OR3=no
+-if test "x$HAVE_GTK" = "xyes" -o "x$HAVE_GTK3" = "xyes" ; then
+- HAVE_GTK2OR3=yes
+-fi
+-
+ BUILD_UI="no"
+ if test "x$HAVE_GTK2OR3" = "xyes" -a "x$BUILD_CLIENT" = "xyes" ; then
+ BUILD_UI="yes"
+@@ -1223,7 +1240,7 @@
+ Building avahi-python: ${BUILD_PYTHON}
+ Building libavahi-glib: ${HAVE_GLIB}
+ Building libavahi-gobject: ${BUILD_GOBJECT}
+- Building avahi-discover-standalone: ${HAVE_GTK2OR3}
++ Building avahi-discover-standalone: ${ENABLE_GTK_UTILS}
+ Building libavahi-qt3: ${HAVE_QT3}
+ Building libavahi-qt4: ${HAVE_QT4}
+ Building avahi-sharp: ${HAVE_MONO}
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.30-parallel.patch b/net-dns/avahi-gtk/files/avahi-0.6.30-parallel.patch
new file mode 100644
index 00000000..a75f9910
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.30-parallel.patch
@@ -0,0 +1,34 @@
+From cb10a844f9e91322aca91340b7adc0db19c96b36 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Mon, 30 Apr 2012 17:07:41 -0700
+Subject: [PATCH] build-sys: fix parallel install in avahi-utils
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The moment install-exec-local is called, we might still not have
+created ${DESTDIR}/${bindir} so we should make sure to create it
+first, and then try to chdir into it.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ avahi-utils/Makefile.am | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/avahi-utils/Makefile.am b/avahi-utils/Makefile.am
+index a644b4a..1abc79a 100644
+--- a/avahi-utils/Makefile.am
++++ b/avahi-utils/Makefile.am
+@@ -54,7 +54,8 @@ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+ install-exec-local:
+- cd $(DESTDIR)/$(bindir) && \
++ $(mkdir_p) $(DESTDIR)/$(bindir) && \
++ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
+ $(LN_S) avahi-resolve avahi-resolve-address && \
+--
+1.7.8.6
+
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.31-build-client-without-daemon.patch b/net-dns/avahi-gtk/files/avahi-0.6.31-build-client-without-daemon.patch
new file mode 100644
index 00000000..df0c420f
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.31-build-client-without-daemon.patch
@@ -0,0 +1,27 @@
+From ce3b83de6aa689c0cefe0b1e85c03a627b537099 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 12 May 2014 19:46:22 +0200
+Subject: [PATCH] Allow building client without the daemon.
+
+There's no good reason to disallow that, and that's what we specifically
+want to do for multilib.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0e190ba..c56cf01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1185,7 +1185,7 @@ fi
+
+ BUILD_CLIENT="no (You need avahi-daemon and D-Bus!)"
+
+-if test "x$BUILD_DAEMON" = "xyes" -a "x$HAVE_DBUS" = "xyes" ; then
++if "x$HAVE_DBUS" = "xyes" ; then
+ BUILD_CLIENT=yes
+ fi
+
+--
+1.9.3
+
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.31-fix-install-avahi-discover.patch b/net-dns/avahi-gtk/files/avahi-0.6.31-fix-install-avahi-discover.patch
new file mode 100644
index 00000000..62ba967c
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.31-fix-install-avahi-discover.patch
@@ -0,0 +1,31 @@
+--- avahi-0.6.30.old/avahi-python/avahi-discover/Makefile.am 2010-06-28 23:30:34.000000000 -0400
++++ avahi-0.6.30/avahi-python/avahi-discover/Makefile.am 2012-04-21 18:02:01.642934527 -0400
+@@ -22,6 +22,7 @@
+ avahi-discover.py \
+ avahi-discover.desktop.in.in
+
++if ENABLE_GTK_UTILS
+ if HAVE_PYTHON
+ if HAVE_PYTHON_DBUS
+ if HAVE_PYGTK
+@@ -67,3 +68,4 @@
+ endif
+ endif
+ endif
++endif
+--- avahi-0.6.30.old/man/Makefile.am 2012-04-21 18:10:45.690900742 -0400
++++ avahi-0.6.30/man/Makefile.am 2012-04-21 18:09:15.146906578 -0400
+@@ -65,11 +65,13 @@
+ man_MANS += \
+ avahi-bookmarks.1
+ if HAVE_GTK
++if ENABLE_GTK_UTILS
+ man_MANS += \
+ avahi-discover.1
+ endif
+ endif
+ endif
++endif
+
+ if ENABLE_AUTOIPD
+ if HAVE_LIBDAEMON
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.31-host-name-from-machine-id.patch b/net-dns/avahi-gtk/files/avahi-0.6.31-host-name-from-machine-id.patch
new file mode 100644
index 00000000..17ecba52
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.31-host-name-from-machine-id.patch
@@ -0,0 +1,85 @@
+From: David Zeuthen <zeuthen@chromium.org>
+Date: Tue, 5 Mar 2013 19:52:38 +0000 (-0800)
+Subject: avahi-daemon: add option "host-name-from-machine-id="
+X-Git-Url: http://git.0pointer.de/?p=avahi.git;a=commitdiff_plain;h=147cdce70b22ae7cee9fb4fe123db40952f31c9e
+
+avahi-daemon: add option "host-name-from-machine-id="
+
+Signed-off-by: David Zeuthen <zeuthen@chromium.org>
+---
+
+diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c
+index d46f40a..8c28fd6 100644
+--- a/avahi-daemon/main.c
++++ b/avahi-daemon/main.c
+@@ -65,6 +65,7 @@
+ #include <avahi-core/publish.h>
+ #include <avahi-core/dns-srv-rr.h>
+ #include <avahi-core/log.h>
++#include <avahi-core/util.h>
+
+ #ifdef ENABLE_CHROOT
+ #include "chroot.h"
+@@ -576,6 +577,29 @@ static int parse_usec(const char *s, AvahiUsec *u) {
+ return 0;
+ }
+
++static char *get_machine_id(void) {
++ int fd;
++ char buf[32];
++
++ fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1 && errno == ENOENT)
++ fd = open("/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1)
++ return NULL;
++
++ /* File is on a filesystem so we never get EINTR or partial reads */
++ if (read(fd, buf, sizeof buf) != sizeof buf) {
++ close(fd);
++ return NULL;
++ }
++ close(fd);
++
++ /* Contents can be lower, upper and even mixed case so normalize */
++ avahi_strdown(buf);
++
++ return avahi_strndup(buf, sizeof buf);
++}
++
+ static int load_config_file(DaemonConfig *c) {
+ int r = -1;
+ AvahiIniFile *f;
+@@ -631,6 +655,15 @@ static int load_config_file(DaemonConfig *c) {
+ c->server_config.use_iff_running = is_yes(p->value);
+ else if (strcasecmp(p->key, "disallow-other-stacks") == 0)
+ c->server_config.disallow_other_stacks = is_yes(p->value);
++ else if (strcasecmp(p->key, "host-name-from-machine-id") == 0) {
++ if (*(p->value) == 'y' || *(p->value) == 'Y') {
++ char *machine_id = get_machine_id();
++ if (machine_id != NULL) {
++ avahi_free(c->server_config.host_name);
++ c->server_config.host_name = machine_id;
++ }
++ }
++ }
+ #ifdef HAVE_DBUS
+ else if (strcasecmp(p->key, "enable-dbus") == 0) {
+
+diff --git a/man/avahi-daemon.conf.5.xml.in b/man/avahi-daemon.conf.5.xml.in
+index bea7ed5..2d15017 100644
+--- a/man/avahi-daemon.conf.5.xml.in
++++ b/man/avahi-daemon.conf.5.xml.in
+@@ -40,6 +40,12 @@
+ </option>
+
+ <option>
++ <p><opt>host-name-from-machine-id=</opt> Takes a boolean
++ value ("yes" or "no"). If set to "yes" avahi-daemon
++ will use the machine-id as name on the LAN.</p>
++ </option>
++
++ <option>
+ <p><opt>domain-name=</opt> Set the default domain name avahi-daemon
+ tries to register its host name and services on the LAN in. If
+ omitted defaults to ".local".</p>
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.31-install-exec-hook.patch b/net-dns/avahi-gtk/files/avahi-0.6.31-install-exec-hook.patch
new file mode 100644
index 00000000..d9a7bc34
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.31-install-exec-hook.patch
@@ -0,0 +1,11 @@
+--- avahi-0.6.31/avahi-utils/Makefile.am
++++ avahi-0.6.31/avahi-utils/Makefile.am
+@@ -53,7 +53,7 @@
+ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+-install-exec-local:
++install-exec-hook:
+ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch b/net-dns/avahi-gtk/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
new file mode 100644
index 00000000..9c23ca5e
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/484212
+
+Description: SO_REUSEPORT may not exist in running kernel
+ When userspace defines SO_REUSEPORT we will attempt to enable socket
+ port number reuse. However if the running kernel does not support
+ this call it will fail preventing daemon startup. If this call is
+ present but fails ENOPROTOOPT then we know that actually the kernel
+ does not support it and we should continue as if we did not have the
+ call at all. (LP: #1228204)
+ .
+ This patch could be removed from the debian package after jessie release.
+Author: Andy Whitcroft <apw@canonical.com>
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1228204
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732009
+Last-Update: 2013-09-20
+
+Index: avahi-0.6.31/avahi-core/socket.c
+===================================================================
+--- avahi-0.6.31.orig/avahi-core/socket.c 2013-09-20 16:36:50.000000000 +0100
++++ avahi-0.6.31/avahi-core/socket.c 2013-09-20 16:38:23.781863644 +0100
+@@ -177,7 +177,8 @@
+ yes = 1;
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("SO_REUSEPORT failed: %s", strerror(errno));
+- return -1;
++ if (errno != ENOPROTOOPT)
++ return -1;
+ }
+ #endif
+
diff --git a/net-dns/avahi-gtk/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch b/net-dns/avahi-gtk/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
new file mode 100644
index 00000000..394f6d34
--- /dev/null
+++ b/net-dns/avahi-gtk/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
@@ -0,0 +1,22 @@
+--- avahi-0.6.30/initscript/gentoo/avahi-daemon.in
++++ avahi-0.6.30/initscript/gentoo/avahi-daemon.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ before netmount nfsmount
+--- avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
++++ avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ need avahi-daemon
diff --git a/net-dns/avahi-gtk/metadata.xml b/net-dns/avahi-gtk/metadata.xml
new file mode 100644
index 00000000..2c673780
--- /dev/null
+++ b/net-dns/avahi-gtk/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>lxnay@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/net-dns/avahi-gtk3/Manifest b/net-dns/avahi-gtk3/Manifest
new file mode 100644
index 00000000..0206eaaa
--- /dev/null
+++ b/net-dns/avahi-gtk3/Manifest
@@ -0,0 +1 @@
+DIST avahi-0.6.31.tar.gz 1268686 SHA256 8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48 SHA512 53eb00d570a274d841e1e6ad07da077950089ae39b4f7aa21fcd21cc5320b30b506b43e7e57e56198e155cc7bd289b779a48b2b2fc002dc6194a946110451858 WHIRLPOOL a6d97b87dfbb81be359ee03d8f32ebafdbb311bd596d686aeb55a2952ecb6c7c84466b1230e70392ffe23a20a56da7e0a5bd00c8dc1812b2156c0b4a8022144f
diff --git a/net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r1.ebuild b/net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r1.ebuild
new file mode 100644
index 00000000..d2c14917
--- /dev/null
+++ b/net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2013 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="3"
+
+IUSE=""
+COMMON_DEPEND="=net-dns/avahi-base-${PVR}
+ x11-libs/gtk+:3"
+AVAHI_MODULE_DEPEND="${COMMON_DEPEND}"
+AVAHI_MODULE_RDEPEND="${COMMON_DEPEND}"
+
+WANT_AUTOMAKE=1.11
+AVAHI_PATCHES=(
+ # Fix init scripts for >=openrc-0.9.0 (bug #383641)
+ "${FILESDIR}/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch"
+ # install-exec-local -> install-exec-hook
+ "${FILESDIR}"/${P/-gtk3}-install-exec-hook.patch
+ # Backport host-name-from-machine-id patch, bug #466134
+ "${FILESDIR}"/${P/-gtk3}-host-name-from-machine-id.patch
+)
+inherit eutils avahi
+
+src_configure() {
+ local myconf=" --disable-gtk --enable-gtk3"
+ avahi_src_configure "${myconf}"
+}
+
+src_compile() {
+ for target in avahi-common avahi-client avahi-glib avahi-ui; do
+ cd "${S}"/${target} || die
+ emake || die
+ done
+ cd "${S}" || die
+ emake avahi-ui-gtk3.pc || die
+}
+
+src_install() {
+ cd "${S}"/avahi-ui || die
+ emake -j1 install DESTDIR="${ED}" || die
+ cd "${S}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins avahi-ui-gtk3.pc
+
+ avahi_src_install-cleanup
+
+ # Workaround for avahi-ui.h collision between avahi-gtk and avahi-gtk3
+ root_avahi_ui="${ROOT}usr/include/avahi-ui/avahi-ui.h"
+ if [ -e "${root_avahi_ui}" ]; then
+ rm -f "${ED}usr/include/avahi-ui/avahi-ui.h"
+ fi
+}
diff --git a/net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r5.ebuild b/net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r5.ebuild
new file mode 100644
index 00000000..4cef03a1
--- /dev/null
+++ b/net-dns/avahi-gtk3/avahi-gtk3-0.6.31-r5.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2014 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+
+AVAHI_MODULE="${AVAHI_MODULE:-${PN/avahi-}}"
+MY_P=${P/-${AVAHI_MODULE}}
+MY_PN=${PN/-${AVAHI_MODULE}}
+
+WANT_AUTOMAKE=1.11
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+PYTHON_REQ_USE="gdbm"
+
+inherit autotools eutils flag-o-matic multilib multilib-minimal \
+ python-r1 systemd user
+
+DESCRIPTION="System which facilitates service discovery on a local network (gtk3 pkg)"
+HOMEPAGE="http://avahi.org/"
+SRC_URI="http://avahi.org/download/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
+IUSE="bookmarks dbus gdbm introspection nls python utils"
+
+S="${WORKDIR}/${MY_P}"
+
+COMMON_DEPEND="
+ ~net-dns/avahi-base-${PV}[bookmarks=,dbus=,gdbm=,introspection=,nls=,python=,${MULTILIB_USEDEP}]
+ x11-libs/gtk+:3
+"
+
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+MULTILIB_WRAPPED_HEADERS=(
+ # necessary until the UI libraries are ported
+ /usr/include/avahi-ui/avahi-ui.h
+)
+
+src_prepare() {
+ # Make gtk utils optional
+ epatch "${FILESDIR}"/${MY_PN}-0.6.30-optional-gtk-utils.patch
+
+ # Fix init scripts for >=openrc-0.9.0, bug #383641
+ epatch "${FILESDIR}"/${MY_PN}-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
+
+ # install-exec-local -> install-exec-hook
+ epatch "${FILESDIR}"/${MY_P}-install-exec-hook.patch
+
+ # Backport host-name-from-machine-id patch, bug #466134
+ epatch "${FILESDIR}"/${MY_P}-host-name-from-machine-id.patch
+
+ # Don't install avahi-discover unless ENABLE_GTK_UTILS, bug #359575
+ epatch "${FILESDIR}"/${MY_P}-fix-install-avahi-discover.patch
+
+ epatch "${FILESDIR}"/${MY_P}-so_reuseport-may-not-exist-in-running-kernel.patch
+
+ # allow building client without the daemon
+ epatch "${FILESDIR}"/${MY_P}-build-client-without-daemon.patch
+
+ # Drop DEPRECATED flags, bug #384743
+ sed -i -e 's:-D[A-Z_]*DISABLE_DEPRECATED=1::g' avahi-ui/Makefile.am || die
+
+ # Fix references to Lennart's home directory, bug #466210
+ sed -i -e 's/\/home\/lennart\/tmp\/avahi//g' man/* || die
+
+ # Prevent .pyc files in DESTDIR
+ >py-compile
+
+ eautoreconf
+
+ # bundled manpages
+ multilib_copy_sources
+}
+
+src_configure() {
+ # those steps should be done once-per-ebuild rather than per-ABI
+ use sh && replace-flags -O? -O0
+
+ # We need to unset DISPLAY, else the configure script might have problems detecting the pygtk module
+ unset DISPLAY
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myconf=( --disable-static )
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # used by daemons only
+ --disable-libdaemon
+ --with-xml=none
+ )
+ fi
+
+ if use python; then
+ myconf+=(
+ $(multilib_native_use_enable dbus python-dbus)
+ )
+ fi
+
+ econf \
+ --localstatedir="${EPREFIX}/var" \
+ --with-distro=gentoo \
+ --disable-python-dbus \
+ --disable-xmltoman \
+ --disable-monodoc \
+ --disable-pygtk \
+ --enable-glib \
+ --enable-gobject \
+ $(use_enable dbus) \
+ $(multilib_native_use_enable python) \
+ $(use_enable nls) \
+ $(multilib_native_use_enable introspection) \
+ --disable-qt3 \
+ --disable-qt4 \
+ --disable-gtk \
+ $(multilib_is_native_abi && echo -n --enable-gtk3 --enable-utils || echo -n --disable-gtk3 --disable-utils) \
+ $(use_enable gdbm) \
+ $(systemd_with_unitdir) \
+ "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ for target in avahi-common avahi-client avahi-glib avahi-ui; do
+ cd "${BUILD_DIR}"/${target} || die
+ emake || die
+ done
+ cd "${BUILD_DIR}" || die
+ emake avahi-ui-gtk3.pc || die
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ mkdir -p "${D}/usr/bin" || die
+ cd "${BUILD_DIR}"/avahi-ui || die
+ emake DESTDIR="${D}" install || die
+ cd "${BUILD_DIR}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins avahi-ui-gtk3.pc
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+ use bookmarks && use python && use dbus || \
+ rm -f "${D}"/usr/bin/avahi-bookmarks
+}
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.30-automake-1.11.2.patch b/net-dns/avahi-gtk3/files/avahi-0.6.30-automake-1.11.2.patch
new file mode 100644
index 00000000..be385f6c
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.30-automake-1.11.2.patch
@@ -0,0 +1,102 @@
+http://bugs.gentoo.org/397477
+
+--- avahi-python/avahi/Makefile.am
++++ avahi-python/avahi/Makefile.am
+@@ -31,7 +31,7 @@
+ -e 's,@FIRST_KEY\@,key = self.db.firstkey(),g' \
+ -e 's,@CHECK_KEY\@,while key is not None:,g' \
+ -e 's,@NEXT_KEY\@,key = self.db.nextkey(key),g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+@@ -44,7 +44,7 @@
+ -e 's,@FIRST_KEY\@,keys = self.db.keys(),g' \
+ -e 's,@CHECK_KEY\@,for key in keys:,g' \
+ -e 's,@NEXT_KEY\@,,g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+--- avahi-python/avahi/ServiceTypeDatabase.py.in
++++ avahi-python/avahi/ServiceTypeDatabase.py.in
+@@ -26,7 +26,7 @@
+ class ServiceTypeDatabase:
+ """ServiceTypeDatabase maps service types to descriptions"""
+
+- def __init__(self, filename = "@pkglibdir@/service-types.db"):
++ def __init__(self, filename = "@pkgdatadir@/service-types.db"):
+
+ self.db = @DBM@.open(filename, "r")
+
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -62,18 +62,18 @@
+
+ if HAVE_GDBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_la_LIBADD += -lgdbm
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_gtk3_la_LIBADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ bin_PROGRAMS = bssh
+--- avahi-utils/Makefile.am
++++ avahi-utils/Makefile.am
+@@ -30,13 +30,13 @@
+
+ if HAVE_GDBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ avahi_browse_LDADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ avahi_resolve_SOURCES = avahi-resolve.c sigint.c sigint.h
+--- service-type-database/Makefile.am
++++ service-type-database/Makefile.am
+@@ -18,13 +18,12 @@
+ EXTRA_DIST=build-db.in service-types
+
+ pkgdata_DATA=service-types
+-pkglib_DATA=
+
+ if HAVE_PYTHON
+ if HAVE_GDBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db
++pkgdata_DATA+=service-types.db
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
+@@ -41,7 +40,7 @@
+ if HAVE_DBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db.pag service-types.db.dir
++pkgdata_DATA+=service-types.db.pag service-types.db.dir
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.30-optional-gtk-utils.patch b/net-dns/avahi-gtk3/files/avahi-0.6.30-optional-gtk-utils.patch
new file mode 100644
index 00000000..2c615a2b
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.30-optional-gtk-utils.patch
@@ -0,0 +1,83 @@
+--- avahi-discover-standalone/Makefile.am
++++ avahi-discover-standalone/Makefile.am
+@@ -23,7 +23,7 @@
+ # This cool debug trap works on i386/gcc only
+ AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
+
+-if HAVE_GTK2OR3
++if ENABLE_GTK_UTILS
+ if HAVE_GLIB
+ bin_PROGRAMS = \
+ avahi-discover-standalone
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -76,6 +76,7 @@
+ libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
+ endif
+
++if ENABLE_GTK_UTILS
+ bin_PROGRAMS = bssh
+ desktop_DATA += bssh.desktop bvnc.desktop
+ @INTLTOOL_DESKTOP_RULE@
+@@ -102,6 +103,7 @@
+ bvnc.desktop.in: bvnc.desktop.in.in
+ $(AM_V_GEN)sed -e 's,@bindir\@,$(bindir),g' $< > $@
+
++endif # ENABLE_GTK_UTILS
+ endif # HAVE_GLIB
+ endif
+ endif
+--- configure.ac
++++ configure.ac
+@@ -564,7 +564,29 @@
+ fi
+ AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
+
+-AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes" )
++#
++# Check for GTK+ Utils
++#
++AC_ARG_ENABLE(gtk-utils,
++ AS_HELP_STRING([--disable-gtk-utils],[Disable GTK+ utilities]),
++ [case "${enableval}" in
++ yes) WANT_GTK_UTILS=yes ;;
++ no) WANT_GTK_UTILS=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for --enable-gtk-utils) ;;
++ esac],
++ [WANT_GTK_UTILS=yes])
++
++ENABLE_GTK_UTILS=no
++HAVE_GTK2OR3=no
++if test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes"; then
++ HAVE_GTK2OR3=yes
++ if test "x$WANT_GTK_UTILS" = "xyes"; then
++ ENABLE_GTK_UTILS=yes
++ fi
++fi
++
++AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK2OR3" = "xyes")
++AM_CONDITIONAL(ENABLE_GTK_UTILS, test "x$ENABLE_GTK_UTILS" = "xyes")
+
+ #
+ # D-Bus
+@@ -1199,11 +1221,6 @@
+ ENABLE_AUTOIPD="no (You need libdaemon!)"
+ fi
+
+-HAVE_GTK2OR3=no
+-if test "x$HAVE_GTK" = "xyes" -o "x$HAVE_GTK3" = "xyes" ; then
+- HAVE_GTK2OR3=yes
+-fi
+-
+ BUILD_UI="no"
+ if test "x$HAVE_GTK2OR3" = "xyes" -a "x$BUILD_CLIENT" = "xyes" ; then
+ BUILD_UI="yes"
+@@ -1223,7 +1240,7 @@
+ Building avahi-python: ${BUILD_PYTHON}
+ Building libavahi-glib: ${HAVE_GLIB}
+ Building libavahi-gobject: ${BUILD_GOBJECT}
+- Building avahi-discover-standalone: ${HAVE_GTK2OR3}
++ Building avahi-discover-standalone: ${ENABLE_GTK_UTILS}
+ Building libavahi-qt3: ${HAVE_QT3}
+ Building libavahi-qt4: ${HAVE_QT4}
+ Building avahi-sharp: ${HAVE_MONO}
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.30-parallel.patch b/net-dns/avahi-gtk3/files/avahi-0.6.30-parallel.patch
new file mode 100644
index 00000000..a75f9910
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.30-parallel.patch
@@ -0,0 +1,34 @@
+From cb10a844f9e91322aca91340b7adc0db19c96b36 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Mon, 30 Apr 2012 17:07:41 -0700
+Subject: [PATCH] build-sys: fix parallel install in avahi-utils
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The moment install-exec-local is called, we might still not have
+created ${DESTDIR}/${bindir} so we should make sure to create it
+first, and then try to chdir into it.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ avahi-utils/Makefile.am | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/avahi-utils/Makefile.am b/avahi-utils/Makefile.am
+index a644b4a..1abc79a 100644
+--- a/avahi-utils/Makefile.am
++++ b/avahi-utils/Makefile.am
+@@ -54,7 +54,8 @@ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+ install-exec-local:
+- cd $(DESTDIR)/$(bindir) && \
++ $(mkdir_p) $(DESTDIR)/$(bindir) && \
++ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
+ $(LN_S) avahi-resolve avahi-resolve-address && \
+--
+1.7.8.6
+
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.31-build-client-without-daemon.patch b/net-dns/avahi-gtk3/files/avahi-0.6.31-build-client-without-daemon.patch
new file mode 100644
index 00000000..df0c420f
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.31-build-client-without-daemon.patch
@@ -0,0 +1,27 @@
+From ce3b83de6aa689c0cefe0b1e85c03a627b537099 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 12 May 2014 19:46:22 +0200
+Subject: [PATCH] Allow building client without the daemon.
+
+There's no good reason to disallow that, and that's what we specifically
+want to do for multilib.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0e190ba..c56cf01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1185,7 +1185,7 @@ fi
+
+ BUILD_CLIENT="no (You need avahi-daemon and D-Bus!)"
+
+-if test "x$BUILD_DAEMON" = "xyes" -a "x$HAVE_DBUS" = "xyes" ; then
++if "x$HAVE_DBUS" = "xyes" ; then
+ BUILD_CLIENT=yes
+ fi
+
+--
+1.9.3
+
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.31-fix-install-avahi-discover.patch b/net-dns/avahi-gtk3/files/avahi-0.6.31-fix-install-avahi-discover.patch
new file mode 100644
index 00000000..62ba967c
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.31-fix-install-avahi-discover.patch
@@ -0,0 +1,31 @@
+--- avahi-0.6.30.old/avahi-python/avahi-discover/Makefile.am 2010-06-28 23:30:34.000000000 -0400
++++ avahi-0.6.30/avahi-python/avahi-discover/Makefile.am 2012-04-21 18:02:01.642934527 -0400
+@@ -22,6 +22,7 @@
+ avahi-discover.py \
+ avahi-discover.desktop.in.in
+
++if ENABLE_GTK_UTILS
+ if HAVE_PYTHON
+ if HAVE_PYTHON_DBUS
+ if HAVE_PYGTK
+@@ -67,3 +68,4 @@
+ endif
+ endif
+ endif
++endif
+--- avahi-0.6.30.old/man/Makefile.am 2012-04-21 18:10:45.690900742 -0400
++++ avahi-0.6.30/man/Makefile.am 2012-04-21 18:09:15.146906578 -0400
+@@ -65,11 +65,13 @@
+ man_MANS += \
+ avahi-bookmarks.1
+ if HAVE_GTK
++if ENABLE_GTK_UTILS
+ man_MANS += \
+ avahi-discover.1
+ endif
+ endif
+ endif
++endif
+
+ if ENABLE_AUTOIPD
+ if HAVE_LIBDAEMON
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.31-host-name-from-machine-id.patch b/net-dns/avahi-gtk3/files/avahi-0.6.31-host-name-from-machine-id.patch
new file mode 100644
index 00000000..17ecba52
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.31-host-name-from-machine-id.patch
@@ -0,0 +1,85 @@
+From: David Zeuthen <zeuthen@chromium.org>
+Date: Tue, 5 Mar 2013 19:52:38 +0000 (-0800)
+Subject: avahi-daemon: add option "host-name-from-machine-id="
+X-Git-Url: http://git.0pointer.de/?p=avahi.git;a=commitdiff_plain;h=147cdce70b22ae7cee9fb4fe123db40952f31c9e
+
+avahi-daemon: add option "host-name-from-machine-id="
+
+Signed-off-by: David Zeuthen <zeuthen@chromium.org>
+---
+
+diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c
+index d46f40a..8c28fd6 100644
+--- a/avahi-daemon/main.c
++++ b/avahi-daemon/main.c
+@@ -65,6 +65,7 @@
+ #include <avahi-core/publish.h>
+ #include <avahi-core/dns-srv-rr.h>
+ #include <avahi-core/log.h>
++#include <avahi-core/util.h>
+
+ #ifdef ENABLE_CHROOT
+ #include "chroot.h"
+@@ -576,6 +577,29 @@ static int parse_usec(const char *s, AvahiUsec *u) {
+ return 0;
+ }
+
++static char *get_machine_id(void) {
++ int fd;
++ char buf[32];
++
++ fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1 && errno == ENOENT)
++ fd = open("/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1)
++ return NULL;
++
++ /* File is on a filesystem so we never get EINTR or partial reads */
++ if (read(fd, buf, sizeof buf) != sizeof buf) {
++ close(fd);
++ return NULL;
++ }
++ close(fd);
++
++ /* Contents can be lower, upper and even mixed case so normalize */
++ avahi_strdown(buf);
++
++ return avahi_strndup(buf, sizeof buf);
++}
++
+ static int load_config_file(DaemonConfig *c) {
+ int r = -1;
+ AvahiIniFile *f;
+@@ -631,6 +655,15 @@ static int load_config_file(DaemonConfig *c) {
+ c->server_config.use_iff_running = is_yes(p->value);
+ else if (strcasecmp(p->key, "disallow-other-stacks") == 0)
+ c->server_config.disallow_other_stacks = is_yes(p->value);
++ else if (strcasecmp(p->key, "host-name-from-machine-id") == 0) {
++ if (*(p->value) == 'y' || *(p->value) == 'Y') {
++ char *machine_id = get_machine_id();
++ if (machine_id != NULL) {
++ avahi_free(c->server_config.host_name);
++ c->server_config.host_name = machine_id;
++ }
++ }
++ }
+ #ifdef HAVE_DBUS
+ else if (strcasecmp(p->key, "enable-dbus") == 0) {
+
+diff --git a/man/avahi-daemon.conf.5.xml.in b/man/avahi-daemon.conf.5.xml.in
+index bea7ed5..2d15017 100644
+--- a/man/avahi-daemon.conf.5.xml.in
++++ b/man/avahi-daemon.conf.5.xml.in
+@@ -40,6 +40,12 @@
+ </option>
+
+ <option>
++ <p><opt>host-name-from-machine-id=</opt> Takes a boolean
++ value ("yes" or "no"). If set to "yes" avahi-daemon
++ will use the machine-id as name on the LAN.</p>
++ </option>
++
++ <option>
+ <p><opt>domain-name=</opt> Set the default domain name avahi-daemon
+ tries to register its host name and services on the LAN in. If
+ omitted defaults to ".local".</p>
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.31-install-exec-hook.patch b/net-dns/avahi-gtk3/files/avahi-0.6.31-install-exec-hook.patch
new file mode 100644
index 00000000..d9a7bc34
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.31-install-exec-hook.patch
@@ -0,0 +1,11 @@
+--- avahi-0.6.31/avahi-utils/Makefile.am
++++ avahi-0.6.31/avahi-utils/Makefile.am
+@@ -53,7 +53,7 @@
+ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+-install-exec-local:
++install-exec-hook:
+ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch b/net-dns/avahi-gtk3/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
new file mode 100644
index 00000000..9c23ca5e
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/484212
+
+Description: SO_REUSEPORT may not exist in running kernel
+ When userspace defines SO_REUSEPORT we will attempt to enable socket
+ port number reuse. However if the running kernel does not support
+ this call it will fail preventing daemon startup. If this call is
+ present but fails ENOPROTOOPT then we know that actually the kernel
+ does not support it and we should continue as if we did not have the
+ call at all. (LP: #1228204)
+ .
+ This patch could be removed from the debian package after jessie release.
+Author: Andy Whitcroft <apw@canonical.com>
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1228204
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732009
+Last-Update: 2013-09-20
+
+Index: avahi-0.6.31/avahi-core/socket.c
+===================================================================
+--- avahi-0.6.31.orig/avahi-core/socket.c 2013-09-20 16:36:50.000000000 +0100
++++ avahi-0.6.31/avahi-core/socket.c 2013-09-20 16:38:23.781863644 +0100
+@@ -177,7 +177,8 @@
+ yes = 1;
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("SO_REUSEPORT failed: %s", strerror(errno));
+- return -1;
++ if (errno != ENOPROTOOPT)
++ return -1;
+ }
+ #endif
+
diff --git a/net-dns/avahi-gtk3/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch b/net-dns/avahi-gtk3/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
new file mode 100644
index 00000000..394f6d34
--- /dev/null
+++ b/net-dns/avahi-gtk3/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
@@ -0,0 +1,22 @@
+--- avahi-0.6.30/initscript/gentoo/avahi-daemon.in
++++ avahi-0.6.30/initscript/gentoo/avahi-daemon.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ before netmount nfsmount
+--- avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
++++ avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ need avahi-daemon
diff --git a/net-dns/avahi-gtk3/metadata.xml b/net-dns/avahi-gtk3/metadata.xml
new file mode 100644
index 00000000..2c673780
--- /dev/null
+++ b/net-dns/avahi-gtk3/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>lxnay@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/net-dns/avahi-mono/Manifest b/net-dns/avahi-mono/Manifest
new file mode 100644
index 00000000..0206eaaa
--- /dev/null
+++ b/net-dns/avahi-mono/Manifest
@@ -0,0 +1 @@
+DIST avahi-0.6.31.tar.gz 1268686 SHA256 8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48 SHA512 53eb00d570a274d841e1e6ad07da077950089ae39b4f7aa21fcd21cc5320b30b506b43e7e57e56198e155cc7bd289b779a48b2b2fc002dc6194a946110451858 WHIRLPOOL a6d97b87dfbb81be359ee03d8f32ebafdbb311bd596d686aeb55a2952ecb6c7c84466b1230e70392ffe23a20a56da7e0a5bd00c8dc1812b2156c0b4a8022144f
diff --git a/net-dns/avahi-mono/avahi-mono-0.6.31-r1.ebuild b/net-dns/avahi-mono/avahi-mono-0.6.31-r1.ebuild
new file mode 100644
index 00000000..c9d02bab
--- /dev/null
+++ b/net-dns/avahi-mono/avahi-mono-0.6.31-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2013 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="3"
+
+IUSE="doc gtk"
+COMMON_DEPEND="=net-dns/avahi-base-${PVR}[dbus]
+ >=dev-lang/mono-1.1.10
+ gtk? (
+ =net-dns/avahi-gtk-${PVR}
+ >=dev-dotnet/gtk-sharp-2
+ )"
+AVAHI_MODULE_DEPEND="${COMMON_DEPEND}
+ doc? ( >=virtual/monodoc-1.1.8 )"
+AVAHI_MODULE_RDEPEND="${COMMON_DEPEND}"
+
+WANT_AUTOMAKE=1.11
+AVAHI_PATCHES=(
+ # Fix init scripts for >=openrc-0.9.0 (bug #383641)
+ "${FILESDIR}/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch"
+ # install-exec-local -> install-exec-hook
+ "${FILESDIR}"/${P/-mono}-install-exec-hook.patch
+ # Backport host-name-from-machine-id patch, bug #466134
+ "${FILESDIR}"/${P/-mono}-host-name-from-machine-id.patch
+)
+inherit eutils avahi
+
+src_configure() {
+ local myconf="--enable-mono --enable-dbus"
+ myconf+=" $(use_enable doc monodoc)"
+ avahi_src_configure "${myconf}"
+}
+
+src_compile() {
+ for target in avahi-common avahi-client avahi-glib avahi-sharp; do
+ cd "${S}"/${target} || die
+ emake || die
+ done
+ cd "${S}" || die
+ emake avahi-sharp.pc || die
+ if use gtk; then
+ cd "${S}"/avahi-ui-sharp || die
+ emake || die
+ cd "${S}" || die
+ emake avahi-ui-sharp.pc || die
+ fi
+}
+
+src_install() {
+ cd "${S}"/avahi-sharp || die
+ emake install DESTDIR="${ED}" || die
+ if use gtk; then
+ cd "${S}"/avahi-ui-sharp || die
+ emake install DESTDIR="${ED}" || die
+ fi
+ cd "${S}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+
+ avahi_src_install-cleanup
+}
diff --git a/net-dns/avahi-mono/avahi-mono-0.6.31-r5.ebuild b/net-dns/avahi-mono/avahi-mono-0.6.31-r5.ebuild
new file mode 100644
index 00000000..17d9c1f7
--- /dev/null
+++ b/net-dns/avahi-mono/avahi-mono-0.6.31-r5.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2014 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+
+AVAHI_MODULE="${AVAHI_MODULE:-${PN/avahi-}}"
+MY_P=${P/-${AVAHI_MODULE}}
+MY_PN=${PN/-${AVAHI_MODULE}}
+
+WANT_AUTOMAKE=1.11
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+PYTHON_REQ_USE="gdbm"
+
+inherit autotools eutils flag-o-matic multilib multilib-minimal \
+ python-r1 systemd user
+
+DESCRIPTION="System which facilitates service discovery on a local network (mono pkg)"
+HOMEPAGE="http://avahi.org/"
+SRC_URI="http://avahi.org/download/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
+IUSE="dbus doc gdbm gtk introspection nls python utils"
+
+S="${WORKDIR}/${MY_P}"
+
+COMMON_DEPEND="
+ ~net-dns/avahi-base-${PV}[dbus=,gdbm=,introspection=,nls=,python=,${MULTILIB_USEDEP}]
+ gtk? (
+ ~net-dns/avahi-gtk-${PV}[dbus=,gdbm=,introspection=,nls=,python=,${MULTILIB_USEDEP}]
+ >=dev-dotnet/gtk-sharp-2
+ )
+"
+
+DEPEND="${COMMON_DEPEND}
+ doc? ( >=virtual/monodoc-1.1.8 )"
+RDEPEND="${COMMON_DEPEND}"
+
+pkg_setup() {
+ mono-env_pkg_setup
+}
+
+src_prepare() {
+ # Make gtk utils optional
+ epatch "${FILESDIR}"/${MY_PN}-0.6.30-optional-gtk-utils.patch
+
+ # Fix init scripts for >=openrc-0.9.0, bug #383641
+ epatch "${FILESDIR}"/${MY_PN}-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
+
+ # install-exec-local -> install-exec-hook
+ epatch "${FILESDIR}"/${MY_P}-install-exec-hook.patch
+
+ # Backport host-name-from-machine-id patch, bug #466134
+ epatch "${FILESDIR}"/${MY_P}-host-name-from-machine-id.patch
+
+ # Don't install avahi-discover unless ENABLE_GTK_UTILS, bug #359575
+ epatch "${FILESDIR}"/${MY_P}-fix-install-avahi-discover.patch
+
+ epatch "${FILESDIR}"/${MY_P}-so_reuseport-may-not-exist-in-running-kernel.patch
+
+ # allow building client without the daemon
+ epatch "${FILESDIR}"/${MY_P}-build-client-without-daemon.patch
+
+ # Drop DEPRECATED flags, bug #384743
+ sed -i -e 's:-D[A-Z_]*DISABLE_DEPRECATED=1::g' avahi-ui/Makefile.am || die
+
+ # Fix references to Lennart's home directory, bug #466210
+ sed -i -e 's/\/home\/lennart\/tmp\/avahi//g' man/* || die
+
+ # Prevent .pyc files in DESTDIR
+ >py-compile
+
+ eautoreconf
+
+ # bundled manpages
+ multilib_copy_sources
+}
+
+src_configure() {
+ # those steps should be done once-per-ebuild rather than per-ABI
+ use sh && replace-flags -O? -O0
+
+ # We need to unset DISPLAY, else the configure script might have problems detecting the pygtk module
+ unset DISPLAY
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myconf=( --disable-static )
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # used by daemons only
+ --disable-libdaemon
+ --with-xml=none
+ )
+ fi
+
+ if use python; then
+ myconf+=(
+ $(multilib_native_use_enable dbus python-dbus)
+ )
+ fi
+
+ econf \
+ --localstatedir="${EPREFIX}/var" \
+ --with-distro=gentoo \
+ --disable-python-dbus \
+ --disable-xmltoman \
+ --disable-monodoc \
+ --disable-pygtk \
+ --enable-glib \
+ --enable-gobject \
+ $(use_enable dbus) \
+ $(multilib_native_use_enable python) \
+ $(use_enable nls) \
+ $(multilib_native_use_enable introspection) \
+ --disable-qt3 \
+ --disable-qt4 \
+ --disable-gtk --disable-gtk-utils \
+ --disable-gtk3 \
+ $(multilib_is_native_abi && echo -n --enable-mono || echo -n --disable-mono) \
+ $(multilib_is_native_abi && echo -n --enable-monodoc || echo -n --disable-monodoc) \
+ $(use_enable gdbm) \
+ $(systemd_with_unitdir) \
+ "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ for target in avahi-common avahi-client avahi-glib avahi-sharp; do
+ cd "${BUILD_DIR}"/${target} || die
+ emake || die
+ done
+ cd "${BUILD_DIR}" || die
+ emake avahi-sharp.pc || die
+
+ if use gtk; then
+ cd "${BUILD_DIR}"/avahi-ui-sharp || die
+ emake || die
+ cd "${BUILD_DIR}" || die
+ emake avahi-ui-sharp.pc || die
+ fi
+ fi
+}
+
+multilib_src_install() {
+ mkdir -p "${D}/usr/bin" || die
+
+ if multilib_is_native_abi; then
+ cd "${BUILD_DIR}"/avahi-sharp || die
+ emake install DESTDIR="${D}" || die
+ if use gtk; then
+ cd "${BUILD_DIR}"/avahi-ui-sharp || die
+ emake install DESTDIR="${D}" || die
+ fi
+ cd "${BUILD_DIR}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+}
diff --git a/net-dns/avahi-mono/files/avahi-0.6.30-automake-1.11.2.patch b/net-dns/avahi-mono/files/avahi-0.6.30-automake-1.11.2.patch
new file mode 100644
index 00000000..be385f6c
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.30-automake-1.11.2.patch
@@ -0,0 +1,102 @@
+http://bugs.gentoo.org/397477
+
+--- avahi-python/avahi/Makefile.am
++++ avahi-python/avahi/Makefile.am
+@@ -31,7 +31,7 @@
+ -e 's,@FIRST_KEY\@,key = self.db.firstkey(),g' \
+ -e 's,@CHECK_KEY\@,while key is not None:,g' \
+ -e 's,@NEXT_KEY\@,key = self.db.nextkey(key),g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+@@ -44,7 +44,7 @@
+ -e 's,@FIRST_KEY\@,keys = self.db.keys(),g' \
+ -e 's,@CHECK_KEY\@,for key in keys:,g' \
+ -e 's,@NEXT_KEY\@,,g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+--- avahi-python/avahi/ServiceTypeDatabase.py.in
++++ avahi-python/avahi/ServiceTypeDatabase.py.in
+@@ -26,7 +26,7 @@
+ class ServiceTypeDatabase:
+ """ServiceTypeDatabase maps service types to descriptions"""
+
+- def __init__(self, filename = "@pkglibdir@/service-types.db"):
++ def __init__(self, filename = "@pkgdatadir@/service-types.db"):
+
+ self.db = @DBM@.open(filename, "r")
+
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -62,18 +62,18 @@
+
+ if HAVE_GDBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_la_LIBADD += -lgdbm
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_gtk3_la_LIBADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ bin_PROGRAMS = bssh
+--- avahi-utils/Makefile.am
++++ avahi-utils/Makefile.am
+@@ -30,13 +30,13 @@
+
+ if HAVE_GDBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ avahi_browse_LDADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ avahi_resolve_SOURCES = avahi-resolve.c sigint.c sigint.h
+--- service-type-database/Makefile.am
++++ service-type-database/Makefile.am
+@@ -18,13 +18,12 @@
+ EXTRA_DIST=build-db.in service-types
+
+ pkgdata_DATA=service-types
+-pkglib_DATA=
+
+ if HAVE_PYTHON
+ if HAVE_GDBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db
++pkgdata_DATA+=service-types.db
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
+@@ -41,7 +40,7 @@
+ if HAVE_DBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db.pag service-types.db.dir
++pkgdata_DATA+=service-types.db.pag service-types.db.dir
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
diff --git a/net-dns/avahi-mono/files/avahi-0.6.30-optional-gtk-utils.patch b/net-dns/avahi-mono/files/avahi-0.6.30-optional-gtk-utils.patch
new file mode 100644
index 00000000..2c615a2b
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.30-optional-gtk-utils.patch
@@ -0,0 +1,83 @@
+--- avahi-discover-standalone/Makefile.am
++++ avahi-discover-standalone/Makefile.am
+@@ -23,7 +23,7 @@
+ # This cool debug trap works on i386/gcc only
+ AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
+
+-if HAVE_GTK2OR3
++if ENABLE_GTK_UTILS
+ if HAVE_GLIB
+ bin_PROGRAMS = \
+ avahi-discover-standalone
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -76,6 +76,7 @@
+ libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
+ endif
+
++if ENABLE_GTK_UTILS
+ bin_PROGRAMS = bssh
+ desktop_DATA += bssh.desktop bvnc.desktop
+ @INTLTOOL_DESKTOP_RULE@
+@@ -102,6 +103,7 @@
+ bvnc.desktop.in: bvnc.desktop.in.in
+ $(AM_V_GEN)sed -e 's,@bindir\@,$(bindir),g' $< > $@
+
++endif # ENABLE_GTK_UTILS
+ endif # HAVE_GLIB
+ endif
+ endif
+--- configure.ac
++++ configure.ac
+@@ -564,7 +564,29 @@
+ fi
+ AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
+
+-AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes" )
++#
++# Check for GTK+ Utils
++#
++AC_ARG_ENABLE(gtk-utils,
++ AS_HELP_STRING([--disable-gtk-utils],[Disable GTK+ utilities]),
++ [case "${enableval}" in
++ yes) WANT_GTK_UTILS=yes ;;
++ no) WANT_GTK_UTILS=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for --enable-gtk-utils) ;;
++ esac],
++ [WANT_GTK_UTILS=yes])
++
++ENABLE_GTK_UTILS=no
++HAVE_GTK2OR3=no
++if test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes"; then
++ HAVE_GTK2OR3=yes
++ if test "x$WANT_GTK_UTILS" = "xyes"; then
++ ENABLE_GTK_UTILS=yes
++ fi
++fi
++
++AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK2OR3" = "xyes")
++AM_CONDITIONAL(ENABLE_GTK_UTILS, test "x$ENABLE_GTK_UTILS" = "xyes")
+
+ #
+ # D-Bus
+@@ -1199,11 +1221,6 @@
+ ENABLE_AUTOIPD="no (You need libdaemon!)"
+ fi
+
+-HAVE_GTK2OR3=no
+-if test "x$HAVE_GTK" = "xyes" -o "x$HAVE_GTK3" = "xyes" ; then
+- HAVE_GTK2OR3=yes
+-fi
+-
+ BUILD_UI="no"
+ if test "x$HAVE_GTK2OR3" = "xyes" -a "x$BUILD_CLIENT" = "xyes" ; then
+ BUILD_UI="yes"
+@@ -1223,7 +1240,7 @@
+ Building avahi-python: ${BUILD_PYTHON}
+ Building libavahi-glib: ${HAVE_GLIB}
+ Building libavahi-gobject: ${BUILD_GOBJECT}
+- Building avahi-discover-standalone: ${HAVE_GTK2OR3}
++ Building avahi-discover-standalone: ${ENABLE_GTK_UTILS}
+ Building libavahi-qt3: ${HAVE_QT3}
+ Building libavahi-qt4: ${HAVE_QT4}
+ Building avahi-sharp: ${HAVE_MONO}
diff --git a/net-dns/avahi-mono/files/avahi-0.6.30-parallel.patch b/net-dns/avahi-mono/files/avahi-0.6.30-parallel.patch
new file mode 100644
index 00000000..a75f9910
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.30-parallel.patch
@@ -0,0 +1,34 @@
+From cb10a844f9e91322aca91340b7adc0db19c96b36 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Mon, 30 Apr 2012 17:07:41 -0700
+Subject: [PATCH] build-sys: fix parallel install in avahi-utils
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The moment install-exec-local is called, we might still not have
+created ${DESTDIR}/${bindir} so we should make sure to create it
+first, and then try to chdir into it.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ avahi-utils/Makefile.am | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/avahi-utils/Makefile.am b/avahi-utils/Makefile.am
+index a644b4a..1abc79a 100644
+--- a/avahi-utils/Makefile.am
++++ b/avahi-utils/Makefile.am
+@@ -54,7 +54,8 @@ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+ install-exec-local:
+- cd $(DESTDIR)/$(bindir) && \
++ $(mkdir_p) $(DESTDIR)/$(bindir) && \
++ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
+ $(LN_S) avahi-resolve avahi-resolve-address && \
+--
+1.7.8.6
+
diff --git a/net-dns/avahi-mono/files/avahi-0.6.31-build-client-without-daemon.patch b/net-dns/avahi-mono/files/avahi-0.6.31-build-client-without-daemon.patch
new file mode 100644
index 00000000..df0c420f
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.31-build-client-without-daemon.patch
@@ -0,0 +1,27 @@
+From ce3b83de6aa689c0cefe0b1e85c03a627b537099 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 12 May 2014 19:46:22 +0200
+Subject: [PATCH] Allow building client without the daemon.
+
+There's no good reason to disallow that, and that's what we specifically
+want to do for multilib.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0e190ba..c56cf01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1185,7 +1185,7 @@ fi
+
+ BUILD_CLIENT="no (You need avahi-daemon and D-Bus!)"
+
+-if test "x$BUILD_DAEMON" = "xyes" -a "x$HAVE_DBUS" = "xyes" ; then
++if "x$HAVE_DBUS" = "xyes" ; then
+ BUILD_CLIENT=yes
+ fi
+
+--
+1.9.3
+
diff --git a/net-dns/avahi-mono/files/avahi-0.6.31-fix-install-avahi-discover.patch b/net-dns/avahi-mono/files/avahi-0.6.31-fix-install-avahi-discover.patch
new file mode 100644
index 00000000..62ba967c
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.31-fix-install-avahi-discover.patch
@@ -0,0 +1,31 @@
+--- avahi-0.6.30.old/avahi-python/avahi-discover/Makefile.am 2010-06-28 23:30:34.000000000 -0400
++++ avahi-0.6.30/avahi-python/avahi-discover/Makefile.am 2012-04-21 18:02:01.642934527 -0400
+@@ -22,6 +22,7 @@
+ avahi-discover.py \
+ avahi-discover.desktop.in.in
+
++if ENABLE_GTK_UTILS
+ if HAVE_PYTHON
+ if HAVE_PYTHON_DBUS
+ if HAVE_PYGTK
+@@ -67,3 +68,4 @@
+ endif
+ endif
+ endif
++endif
+--- avahi-0.6.30.old/man/Makefile.am 2012-04-21 18:10:45.690900742 -0400
++++ avahi-0.6.30/man/Makefile.am 2012-04-21 18:09:15.146906578 -0400
+@@ -65,11 +65,13 @@
+ man_MANS += \
+ avahi-bookmarks.1
+ if HAVE_GTK
++if ENABLE_GTK_UTILS
+ man_MANS += \
+ avahi-discover.1
+ endif
+ endif
+ endif
++endif
+
+ if ENABLE_AUTOIPD
+ if HAVE_LIBDAEMON
diff --git a/net-dns/avahi-mono/files/avahi-0.6.31-host-name-from-machine-id.patch b/net-dns/avahi-mono/files/avahi-0.6.31-host-name-from-machine-id.patch
new file mode 100644
index 00000000..17ecba52
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.31-host-name-from-machine-id.patch
@@ -0,0 +1,85 @@
+From: David Zeuthen <zeuthen@chromium.org>
+Date: Tue, 5 Mar 2013 19:52:38 +0000 (-0800)
+Subject: avahi-daemon: add option "host-name-from-machine-id="
+X-Git-Url: http://git.0pointer.de/?p=avahi.git;a=commitdiff_plain;h=147cdce70b22ae7cee9fb4fe123db40952f31c9e
+
+avahi-daemon: add option "host-name-from-machine-id="
+
+Signed-off-by: David Zeuthen <zeuthen@chromium.org>
+---
+
+diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c
+index d46f40a..8c28fd6 100644
+--- a/avahi-daemon/main.c
++++ b/avahi-daemon/main.c
+@@ -65,6 +65,7 @@
+ #include <avahi-core/publish.h>
+ #include <avahi-core/dns-srv-rr.h>
+ #include <avahi-core/log.h>
++#include <avahi-core/util.h>
+
+ #ifdef ENABLE_CHROOT
+ #include "chroot.h"
+@@ -576,6 +577,29 @@ static int parse_usec(const char *s, AvahiUsec *u) {
+ return 0;
+ }
+
++static char *get_machine_id(void) {
++ int fd;
++ char buf[32];
++
++ fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1 && errno == ENOENT)
++ fd = open("/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1)
++ return NULL;
++
++ /* File is on a filesystem so we never get EINTR or partial reads */
++ if (read(fd, buf, sizeof buf) != sizeof buf) {
++ close(fd);
++ return NULL;
++ }
++ close(fd);
++
++ /* Contents can be lower, upper and even mixed case so normalize */
++ avahi_strdown(buf);
++
++ return avahi_strndup(buf, sizeof buf);
++}
++
+ static int load_config_file(DaemonConfig *c) {
+ int r = -1;
+ AvahiIniFile *f;
+@@ -631,6 +655,15 @@ static int load_config_file(DaemonConfig *c) {
+ c->server_config.use_iff_running = is_yes(p->value);
+ else if (strcasecmp(p->key, "disallow-other-stacks") == 0)
+ c->server_config.disallow_other_stacks = is_yes(p->value);
++ else if (strcasecmp(p->key, "host-name-from-machine-id") == 0) {
++ if (*(p->value) == 'y' || *(p->value) == 'Y') {
++ char *machine_id = get_machine_id();
++ if (machine_id != NULL) {
++ avahi_free(c->server_config.host_name);
++ c->server_config.host_name = machine_id;
++ }
++ }
++ }
+ #ifdef HAVE_DBUS
+ else if (strcasecmp(p->key, "enable-dbus") == 0) {
+
+diff --git a/man/avahi-daemon.conf.5.xml.in b/man/avahi-daemon.conf.5.xml.in
+index bea7ed5..2d15017 100644
+--- a/man/avahi-daemon.conf.5.xml.in
++++ b/man/avahi-daemon.conf.5.xml.in
+@@ -40,6 +40,12 @@
+ </option>
+
+ <option>
++ <p><opt>host-name-from-machine-id=</opt> Takes a boolean
++ value ("yes" or "no"). If set to "yes" avahi-daemon
++ will use the machine-id as name on the LAN.</p>
++ </option>
++
++ <option>
+ <p><opt>domain-name=</opt> Set the default domain name avahi-daemon
+ tries to register its host name and services on the LAN in. If
+ omitted defaults to ".local".</p>
diff --git a/net-dns/avahi-mono/files/avahi-0.6.31-install-exec-hook.patch b/net-dns/avahi-mono/files/avahi-0.6.31-install-exec-hook.patch
new file mode 100644
index 00000000..d9a7bc34
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.31-install-exec-hook.patch
@@ -0,0 +1,11 @@
+--- avahi-0.6.31/avahi-utils/Makefile.am
++++ avahi-0.6.31/avahi-utils/Makefile.am
+@@ -53,7 +53,7 @@
+ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+-install-exec-local:
++install-exec-hook:
+ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
diff --git a/net-dns/avahi-mono/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch b/net-dns/avahi-mono/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
new file mode 100644
index 00000000..9c23ca5e
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/484212
+
+Description: SO_REUSEPORT may not exist in running kernel
+ When userspace defines SO_REUSEPORT we will attempt to enable socket
+ port number reuse. However if the running kernel does not support
+ this call it will fail preventing daemon startup. If this call is
+ present but fails ENOPROTOOPT then we know that actually the kernel
+ does not support it and we should continue as if we did not have the
+ call at all. (LP: #1228204)
+ .
+ This patch could be removed from the debian package after jessie release.
+Author: Andy Whitcroft <apw@canonical.com>
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1228204
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732009
+Last-Update: 2013-09-20
+
+Index: avahi-0.6.31/avahi-core/socket.c
+===================================================================
+--- avahi-0.6.31.orig/avahi-core/socket.c 2013-09-20 16:36:50.000000000 +0100
++++ avahi-0.6.31/avahi-core/socket.c 2013-09-20 16:38:23.781863644 +0100
+@@ -177,7 +177,8 @@
+ yes = 1;
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("SO_REUSEPORT failed: %s", strerror(errno));
+- return -1;
++ if (errno != ENOPROTOOPT)
++ return -1;
+ }
+ #endif
+
diff --git a/net-dns/avahi-mono/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch b/net-dns/avahi-mono/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
new file mode 100644
index 00000000..394f6d34
--- /dev/null
+++ b/net-dns/avahi-mono/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
@@ -0,0 +1,22 @@
+--- avahi-0.6.30/initscript/gentoo/avahi-daemon.in
++++ avahi-0.6.30/initscript/gentoo/avahi-daemon.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ before netmount nfsmount
+--- avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
++++ avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ need avahi-daemon
diff --git a/net-dns/avahi-mono/metadata.xml b/net-dns/avahi-mono/metadata.xml
new file mode 100644
index 00000000..2c673780
--- /dev/null
+++ b/net-dns/avahi-mono/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>lxnay@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/net-dns/avahi-qt/Manifest b/net-dns/avahi-qt/Manifest
new file mode 100644
index 00000000..0206eaaa
--- /dev/null
+++ b/net-dns/avahi-qt/Manifest
@@ -0,0 +1 @@
+DIST avahi-0.6.31.tar.gz 1268686 SHA256 8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48 SHA512 53eb00d570a274d841e1e6ad07da077950089ae39b4f7aa21fcd21cc5320b30b506b43e7e57e56198e155cc7bd289b779a48b2b2fc002dc6194a946110451858 WHIRLPOOL a6d97b87dfbb81be359ee03d8f32ebafdbb311bd596d686aeb55a2952ecb6c7c84466b1230e70392ffe23a20a56da7e0a5bd00c8dc1812b2156c0b4a8022144f
diff --git a/net-dns/avahi-qt/avahi-qt-0.6.31-r1.ebuild b/net-dns/avahi-qt/avahi-qt-0.6.31-r1.ebuild
new file mode 100644
index 00000000..357345d6
--- /dev/null
+++ b/net-dns/avahi-qt/avahi-qt-0.6.31-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2013 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="3"
+
+inherit multilib
+
+IUSE=""
+COMMON_DEPEND="=net-dns/avahi-base-${PVR}
+ dev-qt/qtcore:4"
+AVAHI_MODULE_DEPEND="${COMMON_DEPEND}"
+AVAHI_MODULE_RDEPEND="${COMMON_DEPEND}"
+
+WANT_AUTOMAKE=1.11
+AVAHI_PATCHES=(
+ # Fix init scripts for >=openrc-0.9.0 (bug #383641)
+ "${FILESDIR}/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch"
+ # install-exec-local -> install-exec-hook
+ "${FILESDIR}"/${P/-qt}-install-exec-hook.patch
+ # Backport host-name-from-machine-id patch, bug #466134
+ "${FILESDIR}"/${P/-qt}-host-name-from-machine-id.patch
+)
+inherit eutils avahi
+
+src_configure() {
+ local myconf=" --enable-qt4
+ --disable-mono"
+ avahi_src_configure "${myconf}"
+}
+
+src_compile() {
+ cd "${S}"/avahi-common || die
+ emake || die
+ cd "${S}"/avahi-qt || die
+ emake || die
+ cd "${S}" || die
+ emake avahi-qt4.pc || die
+}
+
+src_install() {
+ cd "${S}"/avahi-qt || die
+ emake install DESTDIR="${ED}" || die
+
+ cd "${S}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins avahi-qt4.pc
+
+ avahi_src_install-cleanup
+}
diff --git a/net-dns/avahi-qt/avahi-qt-0.6.31-r5.ebuild b/net-dns/avahi-qt/avahi-qt-0.6.31-r5.ebuild
new file mode 100644
index 00000000..7eaa29d2
--- /dev/null
+++ b/net-dns/avahi-qt/avahi-qt-0.6.31-r5.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2014 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+
+AVAHI_MODULE="${AVAHI_MODULE:-${PN/avahi-}}"
+MY_P=${P/-${AVAHI_MODULE}}
+MY_PN=${PN/-${AVAHI_MODULE}}
+
+WANT_AUTOMAKE=1.11
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+PYTHON_REQ_USE="gdbm"
+
+inherit autotools eutils flag-o-matic multilib multilib-minimal \
+ python-r1 systemd user
+
+DESCRIPTION="System which facilitates service discovery on a local network (qt4 pkg)"
+HOMEPAGE="http://avahi.org/"
+SRC_URI="http://avahi.org/download/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
+IUSE="dbus gdbm introspection nls python utils"
+
+S="${WORKDIR}/${MY_P}"
+
+COMMON_DEPEND="
+ ~net-dns/avahi-base-${PV}[dbus=,gdbm=,introspection=,nls=,python=,${MULTILIB_USEDEP}]
+ dev-qt/qtcore:4
+"
+
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+MULTILIB_WRAPPED_HEADERS=(
+ # necessary until the UI libraries are ported
+ /usr/include/avahi-qt4/qt-watch.h
+)
+
+src_prepare() {
+ # Make gtk utils optional
+ epatch "${FILESDIR}"/${MY_PN}-0.6.30-optional-gtk-utils.patch
+
+ # Fix init scripts for >=openrc-0.9.0, bug #383641
+ epatch "${FILESDIR}"/${MY_PN}-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
+
+ # install-exec-local -> install-exec-hook
+ epatch "${FILESDIR}"/${MY_P}-install-exec-hook.patch
+
+ # Backport host-name-from-machine-id patch, bug #466134
+ epatch "${FILESDIR}"/${MY_P}-host-name-from-machine-id.patch
+
+ # Don't install avahi-discover unless ENABLE_GTK_UTILS, bug #359575
+ epatch "${FILESDIR}"/${MY_P}-fix-install-avahi-discover.patch
+
+ epatch "${FILESDIR}"/${MY_P}-so_reuseport-may-not-exist-in-running-kernel.patch
+
+ # allow building client without the daemon
+ epatch "${FILESDIR}"/${MY_P}-build-client-without-daemon.patch
+
+ # Drop DEPRECATED flags, bug #384743
+ sed -i -e 's:-D[A-Z_]*DISABLE_DEPRECATED=1::g' avahi-ui/Makefile.am || die
+
+ # Fix references to Lennart's home directory, bug #466210
+ sed -i -e 's/\/home\/lennart\/tmp\/avahi//g' man/* || die
+
+ # Prevent .pyc files in DESTDIR
+ >py-compile
+
+ eautoreconf
+
+ # bundled manpages
+ multilib_copy_sources
+}
+
+src_configure() {
+ # those steps should be done once-per-ebuild rather than per-ABI
+ use sh && replace-flags -O? -O0
+
+ # We need to unset DISPLAY, else the configure script might have problems detecting the pygtk module
+ unset DISPLAY
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myconf=( --disable-static )
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # used by daemons only
+ --disable-libdaemon
+ --with-xml=none
+ )
+ fi
+
+ if use python; then
+ myconf+=(
+ $(multilib_native_use_enable dbus python-dbus)
+ )
+ fi
+
+ econf \
+ --localstatedir="${EPREFIX}/var" \
+ --with-distro=gentoo \
+ --disable-python-dbus \
+ --disable-xmltoman \
+ --disable-monodoc \
+ --disable-pygtk \
+ --enable-glib \
+ --enable-gobject \
+ $(use_enable dbus) \
+ $(multilib_native_use_enable python) \
+ $(use_enable nls) \
+ $(multilib_native_use_enable introspection) \
+ --disable-qt3 \
+ --disable-gtk3 \
+ --disable-gtk --disable-gtk-utils \
+ $(multilib_is_native_abi && echo -n --enable-qt4 || echo -n --disable-qt4) \
+ $(use_enable gdbm) \
+ $(systemd_with_unitdir) \
+ "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ cd "${BUILD_DIR}"/avahi-common || die
+ emake || die
+ cd "${BUILD_DIR}"/avahi-qt || die
+ emake || die
+ cd "${BUILD_DIR}" || die
+ emake avahi-qt4.pc || die
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ mkdir -p "${D}/usr/bin" || die
+
+ cd "${BUILD_DIR}"/avahi-qt || die
+ emake install DESTDIR="${D}" || die
+
+ cd "${BUILD_DIR}" || die
+ dodir /usr/$(get_libdir)/pkgconfig
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins avahi-qt4.pc
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+}
diff --git a/net-dns/avahi-qt/files/avahi-0.6.30-automake-1.11.2.patch b/net-dns/avahi-qt/files/avahi-0.6.30-automake-1.11.2.patch
new file mode 100644
index 00000000..be385f6c
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.30-automake-1.11.2.patch
@@ -0,0 +1,102 @@
+http://bugs.gentoo.org/397477
+
+--- avahi-python/avahi/Makefile.am
++++ avahi-python/avahi/Makefile.am
+@@ -31,7 +31,7 @@
+ -e 's,@FIRST_KEY\@,key = self.db.firstkey(),g' \
+ -e 's,@CHECK_KEY\@,while key is not None:,g' \
+ -e 's,@NEXT_KEY\@,key = self.db.nextkey(key),g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+@@ -44,7 +44,7 @@
+ -e 's,@FIRST_KEY\@,keys = self.db.keys(),g' \
+ -e 's,@CHECK_KEY\@,for key in keys:,g' \
+ -e 's,@NEXT_KEY\@,,g' \
+- -e 's,@pkglibdir\@,$(pkglibdir),g' $< > $@ && \
++ -e 's,@pkgdatadir\@,$(pkgdatadir),g' $< > $@ && \
+ chmod +x $@
+ endif
+
+--- avahi-python/avahi/ServiceTypeDatabase.py.in
++++ avahi-python/avahi/ServiceTypeDatabase.py.in
+@@ -26,7 +26,7 @@
+ class ServiceTypeDatabase:
+ """ServiceTypeDatabase maps service types to descriptions"""
+
+- def __init__(self, filename = "@pkglibdir@/service-types.db"):
++ def __init__(self, filename = "@pkgdatadir@/service-types.db"):
+
+ self.db = @DBM@.open(filename, "r")
+
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -62,18 +62,18 @@
+
+ if HAVE_GDBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_la_LIBADD += -lgdbm
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ libavahi_ui_gtk3_la_LIBADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ libavahi_ui_la_SOURCES += ../avahi-utils/stdb.h ../avahi-utils/stdb.c
+-libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+
+-libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ bin_PROGRAMS = bssh
+--- avahi-utils/Makefile.am
++++ avahi-utils/Makefile.am
+@@ -30,13 +30,13 @@
+
+ if HAVE_GDBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ avahi_browse_LDADD += -lgdbm
+ endif
+
+ if HAVE_DBM
+ avahi_browse_SOURCES += stdb.h stdb.c
+-avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
++avahi_browse_CFLAGS += -DDATABASE_FILE=\"$(pkgdatadir)/service-types.db\"
+ endif
+
+ avahi_resolve_SOURCES = avahi-resolve.c sigint.c sigint.h
+--- service-type-database/Makefile.am
++++ service-type-database/Makefile.am
+@@ -18,13 +18,12 @@
+ EXTRA_DIST=build-db.in service-types
+
+ pkgdata_DATA=service-types
+-pkglib_DATA=
+
+ if HAVE_PYTHON
+ if HAVE_GDBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db
++pkgdata_DATA+=service-types.db
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
+@@ -41,7 +40,7 @@
+ if HAVE_DBM
+
+ noinst_SCRIPTS=build-db
+-pkglib_DATA+=service-types.db.pag service-types.db.dir
++pkgdata_DATA+=service-types.db.pag service-types.db.dir
+
+ build-db: build-db.in
+ $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \
diff --git a/net-dns/avahi-qt/files/avahi-0.6.30-optional-gtk-utils.patch b/net-dns/avahi-qt/files/avahi-0.6.30-optional-gtk-utils.patch
new file mode 100644
index 00000000..2c615a2b
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.30-optional-gtk-utils.patch
@@ -0,0 +1,83 @@
+--- avahi-discover-standalone/Makefile.am
++++ avahi-discover-standalone/Makefile.am
+@@ -23,7 +23,7 @@
+ # This cool debug trap works on i386/gcc only
+ AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
+
+-if HAVE_GTK2OR3
++if ENABLE_GTK_UTILS
+ if HAVE_GLIB
+ bin_PROGRAMS = \
+ avahi-discover-standalone
+--- avahi-ui/Makefile.am
++++ avahi-ui/Makefile.am
+@@ -76,6 +76,7 @@
+ libavahi_ui_gtk3_la_CFLAGS += -DDATABASE_FILE=\"$(pkglibdir)/service-types.db\"
+ endif
+
++if ENABLE_GTK_UTILS
+ bin_PROGRAMS = bssh
+ desktop_DATA += bssh.desktop bvnc.desktop
+ @INTLTOOL_DESKTOP_RULE@
+@@ -102,6 +103,7 @@
+ bvnc.desktop.in: bvnc.desktop.in.in
+ $(AM_V_GEN)sed -e 's,@bindir\@,$(bindir),g' $< > $@
+
++endif # ENABLE_GTK_UTILS
+ endif # HAVE_GLIB
+ endif
+ endif
+--- configure.ac
++++ configure.ac
+@@ -564,7 +564,29 @@
+ fi
+ AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
+
+-AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes" )
++#
++# Check for GTK+ Utils
++#
++AC_ARG_ENABLE(gtk-utils,
++ AS_HELP_STRING([--disable-gtk-utils],[Disable GTK+ utilities]),
++ [case "${enableval}" in
++ yes) WANT_GTK_UTILS=yes ;;
++ no) WANT_GTK_UTILS=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for --enable-gtk-utils) ;;
++ esac],
++ [WANT_GTK_UTILS=yes])
++
++ENABLE_GTK_UTILS=no
++HAVE_GTK2OR3=no
++if test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes"; then
++ HAVE_GTK2OR3=yes
++ if test "x$WANT_GTK_UTILS" = "xyes"; then
++ ENABLE_GTK_UTILS=yes
++ fi
++fi
++
++AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK2OR3" = "xyes")
++AM_CONDITIONAL(ENABLE_GTK_UTILS, test "x$ENABLE_GTK_UTILS" = "xyes")
+
+ #
+ # D-Bus
+@@ -1199,11 +1221,6 @@
+ ENABLE_AUTOIPD="no (You need libdaemon!)"
+ fi
+
+-HAVE_GTK2OR3=no
+-if test "x$HAVE_GTK" = "xyes" -o "x$HAVE_GTK3" = "xyes" ; then
+- HAVE_GTK2OR3=yes
+-fi
+-
+ BUILD_UI="no"
+ if test "x$HAVE_GTK2OR3" = "xyes" -a "x$BUILD_CLIENT" = "xyes" ; then
+ BUILD_UI="yes"
+@@ -1223,7 +1240,7 @@
+ Building avahi-python: ${BUILD_PYTHON}
+ Building libavahi-glib: ${HAVE_GLIB}
+ Building libavahi-gobject: ${BUILD_GOBJECT}
+- Building avahi-discover-standalone: ${HAVE_GTK2OR3}
++ Building avahi-discover-standalone: ${ENABLE_GTK_UTILS}
+ Building libavahi-qt3: ${HAVE_QT3}
+ Building libavahi-qt4: ${HAVE_QT4}
+ Building avahi-sharp: ${HAVE_MONO}
diff --git a/net-dns/avahi-qt/files/avahi-0.6.30-parallel.patch b/net-dns/avahi-qt/files/avahi-0.6.30-parallel.patch
new file mode 100644
index 00000000..a75f9910
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.30-parallel.patch
@@ -0,0 +1,34 @@
+From cb10a844f9e91322aca91340b7adc0db19c96b36 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Mon, 30 Apr 2012 17:07:41 -0700
+Subject: [PATCH] build-sys: fix parallel install in avahi-utils
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The moment install-exec-local is called, we might still not have
+created ${DESTDIR}/${bindir} so we should make sure to create it
+first, and then try to chdir into it.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ avahi-utils/Makefile.am | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/avahi-utils/Makefile.am b/avahi-utils/Makefile.am
+index a644b4a..1abc79a 100644
+--- a/avahi-utils/Makefile.am
++++ b/avahi-utils/Makefile.am
+@@ -54,7 +54,8 @@ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+ install-exec-local:
+- cd $(DESTDIR)/$(bindir) && \
++ $(mkdir_p) $(DESTDIR)/$(bindir) && \
++ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
+ $(LN_S) avahi-resolve avahi-resolve-address && \
+--
+1.7.8.6
+
diff --git a/net-dns/avahi-qt/files/avahi-0.6.31-build-client-without-daemon.patch b/net-dns/avahi-qt/files/avahi-0.6.31-build-client-without-daemon.patch
new file mode 100644
index 00000000..df0c420f
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.31-build-client-without-daemon.patch
@@ -0,0 +1,27 @@
+From ce3b83de6aa689c0cefe0b1e85c03a627b537099 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 12 May 2014 19:46:22 +0200
+Subject: [PATCH] Allow building client without the daemon.
+
+There's no good reason to disallow that, and that's what we specifically
+want to do for multilib.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0e190ba..c56cf01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1185,7 +1185,7 @@ fi
+
+ BUILD_CLIENT="no (You need avahi-daemon and D-Bus!)"
+
+-if test "x$BUILD_DAEMON" = "xyes" -a "x$HAVE_DBUS" = "xyes" ; then
++if "x$HAVE_DBUS" = "xyes" ; then
+ BUILD_CLIENT=yes
+ fi
+
+--
+1.9.3
+
diff --git a/net-dns/avahi-qt/files/avahi-0.6.31-fix-install-avahi-discover.patch b/net-dns/avahi-qt/files/avahi-0.6.31-fix-install-avahi-discover.patch
new file mode 100644
index 00000000..62ba967c
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.31-fix-install-avahi-discover.patch
@@ -0,0 +1,31 @@
+--- avahi-0.6.30.old/avahi-python/avahi-discover/Makefile.am 2010-06-28 23:30:34.000000000 -0400
++++ avahi-0.6.30/avahi-python/avahi-discover/Makefile.am 2012-04-21 18:02:01.642934527 -0400
+@@ -22,6 +22,7 @@
+ avahi-discover.py \
+ avahi-discover.desktop.in.in
+
++if ENABLE_GTK_UTILS
+ if HAVE_PYTHON
+ if HAVE_PYTHON_DBUS
+ if HAVE_PYGTK
+@@ -67,3 +68,4 @@
+ endif
+ endif
+ endif
++endif
+--- avahi-0.6.30.old/man/Makefile.am 2012-04-21 18:10:45.690900742 -0400
++++ avahi-0.6.30/man/Makefile.am 2012-04-21 18:09:15.146906578 -0400
+@@ -65,11 +65,13 @@
+ man_MANS += \
+ avahi-bookmarks.1
+ if HAVE_GTK
++if ENABLE_GTK_UTILS
+ man_MANS += \
+ avahi-discover.1
+ endif
+ endif
+ endif
++endif
+
+ if ENABLE_AUTOIPD
+ if HAVE_LIBDAEMON
diff --git a/net-dns/avahi-qt/files/avahi-0.6.31-host-name-from-machine-id.patch b/net-dns/avahi-qt/files/avahi-0.6.31-host-name-from-machine-id.patch
new file mode 100644
index 00000000..17ecba52
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.31-host-name-from-machine-id.patch
@@ -0,0 +1,85 @@
+From: David Zeuthen <zeuthen@chromium.org>
+Date: Tue, 5 Mar 2013 19:52:38 +0000 (-0800)
+Subject: avahi-daemon: add option "host-name-from-machine-id="
+X-Git-Url: http://git.0pointer.de/?p=avahi.git;a=commitdiff_plain;h=147cdce70b22ae7cee9fb4fe123db40952f31c9e
+
+avahi-daemon: add option "host-name-from-machine-id="
+
+Signed-off-by: David Zeuthen <zeuthen@chromium.org>
+---
+
+diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c
+index d46f40a..8c28fd6 100644
+--- a/avahi-daemon/main.c
++++ b/avahi-daemon/main.c
+@@ -65,6 +65,7 @@
+ #include <avahi-core/publish.h>
+ #include <avahi-core/dns-srv-rr.h>
+ #include <avahi-core/log.h>
++#include <avahi-core/util.h>
+
+ #ifdef ENABLE_CHROOT
+ #include "chroot.h"
+@@ -576,6 +577,29 @@ static int parse_usec(const char *s, AvahiUsec *u) {
+ return 0;
+ }
+
++static char *get_machine_id(void) {
++ int fd;
++ char buf[32];
++
++ fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1 && errno == ENOENT)
++ fd = open("/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++ if (fd == -1)
++ return NULL;
++
++ /* File is on a filesystem so we never get EINTR or partial reads */
++ if (read(fd, buf, sizeof buf) != sizeof buf) {
++ close(fd);
++ return NULL;
++ }
++ close(fd);
++
++ /* Contents can be lower, upper and even mixed case so normalize */
++ avahi_strdown(buf);
++
++ return avahi_strndup(buf, sizeof buf);
++}
++
+ static int load_config_file(DaemonConfig *c) {
+ int r = -1;
+ AvahiIniFile *f;
+@@ -631,6 +655,15 @@ static int load_config_file(DaemonConfig *c) {
+ c->server_config.use_iff_running = is_yes(p->value);
+ else if (strcasecmp(p->key, "disallow-other-stacks") == 0)
+ c->server_config.disallow_other_stacks = is_yes(p->value);
++ else if (strcasecmp(p->key, "host-name-from-machine-id") == 0) {
++ if (*(p->value) == 'y' || *(p->value) == 'Y') {
++ char *machine_id = get_machine_id();
++ if (machine_id != NULL) {
++ avahi_free(c->server_config.host_name);
++ c->server_config.host_name = machine_id;
++ }
++ }
++ }
+ #ifdef HAVE_DBUS
+ else if (strcasecmp(p->key, "enable-dbus") == 0) {
+
+diff --git a/man/avahi-daemon.conf.5.xml.in b/man/avahi-daemon.conf.5.xml.in
+index bea7ed5..2d15017 100644
+--- a/man/avahi-daemon.conf.5.xml.in
++++ b/man/avahi-daemon.conf.5.xml.in
+@@ -40,6 +40,12 @@
+ </option>
+
+ <option>
++ <p><opt>host-name-from-machine-id=</opt> Takes a boolean
++ value ("yes" or "no"). If set to "yes" avahi-daemon
++ will use the machine-id as name on the LAN.</p>
++ </option>
++
++ <option>
+ <p><opt>domain-name=</opt> Set the default domain name avahi-daemon
+ tries to register its host name and services on the LAN in. If
+ omitted defaults to ".local".</p>
diff --git a/net-dns/avahi-qt/files/avahi-0.6.31-install-exec-hook.patch b/net-dns/avahi-qt/files/avahi-0.6.31-install-exec-hook.patch
new file mode 100644
index 00000000..d9a7bc34
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.31-install-exec-hook.patch
@@ -0,0 +1,11 @@
+--- avahi-0.6.31/avahi-utils/Makefile.am
++++ avahi-0.6.31/avahi-utils/Makefile.am
+@@ -53,7 +53,7 @@
+ avahi_set_host_name_CFLAGS = $(AM_CFLAGS)
+ avahi_set_host_name_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
+
+-install-exec-local:
++install-exec-hook:
+ cd $(DESTDIR)/$(bindir) && \
+ rm -f avahi-resolve-host-name avahi-resolve-address avahi-browse-domains avahi-publish-address avahi-publish-service && \
+ $(LN_S) avahi-resolve avahi-resolve-host-name && \
diff --git a/net-dns/avahi-qt/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch b/net-dns/avahi-qt/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
new file mode 100644
index 00000000..9c23ca5e
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/484212
+
+Description: SO_REUSEPORT may not exist in running kernel
+ When userspace defines SO_REUSEPORT we will attempt to enable socket
+ port number reuse. However if the running kernel does not support
+ this call it will fail preventing daemon startup. If this call is
+ present but fails ENOPROTOOPT then we know that actually the kernel
+ does not support it and we should continue as if we did not have the
+ call at all. (LP: #1228204)
+ .
+ This patch could be removed from the debian package after jessie release.
+Author: Andy Whitcroft <apw@canonical.com>
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1228204
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732009
+Last-Update: 2013-09-20
+
+Index: avahi-0.6.31/avahi-core/socket.c
+===================================================================
+--- avahi-0.6.31.orig/avahi-core/socket.c 2013-09-20 16:36:50.000000000 +0100
++++ avahi-0.6.31/avahi-core/socket.c 2013-09-20 16:38:23.781863644 +0100
+@@ -177,7 +177,8 @@
+ yes = 1;
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("SO_REUSEPORT failed: %s", strerror(errno));
+- return -1;
++ if (errno != ENOPROTOOPT)
++ return -1;
+ }
+ #endif
+
diff --git a/net-dns/avahi-qt/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch b/net-dns/avahi-qt/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
new file mode 100644
index 00000000..394f6d34
--- /dev/null
+++ b/net-dns/avahi-qt/files/avahi-0.6.x-openrc-0.9.x-init-scripts-fixes.patch
@@ -0,0 +1,22 @@
+--- avahi-0.6.30/initscript/gentoo/avahi-daemon.in
++++ avahi-0.6.30/initscript/gentoo/avahi-daemon.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ before netmount nfsmount
+--- avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
++++ avahi-0.6.30/initscript/gentoo/avahi-dnsconfd.in
+@@ -2,7 +2,7 @@
+ # Copyright 1999-2007 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+-opts="reload"
++extra_started_commands="reload"
+
+ depend() {
+ need avahi-daemon
diff --git a/net-dns/avahi-qt/metadata.xml b/net-dns/avahi-qt/metadata.xml
new file mode 100644
index 00000000..2c673780
--- /dev/null
+++ b/net-dns/avahi-qt/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>lxnay@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/net-dns/avahi/avahi-0.6.31-r5.ebuild b/net-dns/avahi/avahi-0.6.31-r5.ebuild
new file mode 100644
index 00000000..6fcd7c9a
--- /dev/null
+++ b/net-dns/avahi/avahi-0.6.31-r5.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+inherit multilib-build
+
+DESCRIPTION="System which facilitates service discovery on a local network (meta package)"
+HOMEPAGE="http://avahi.org/"
+SRC_URI=""
+
+KEYWORDS="~amd64 ~arm ~x86"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+IUSE="autoipd bookmarks dbus doc gdbm gtk gtk3 howl-compat +introspection ipv6 kernel_linux mdnsresponder-compat mono nls python qt4 selinux test utils"
+
+COMMON_DEPEND="=net-dns/avahi-base-${PVR}[autoipd=,bookmarks=,dbus=,doc=,gdbm=,howl-compat=,introspection=,ipv6=,mdnsresponder-compat=,python=,test=,nls=,selinux=,${MULTILIB_USEDEP}]
+ gtk? ( =net-dns/avahi-gtk-${PVR}[bookmarks=,gdbm=,nls=,python=,dbus=,${MULTILIB_USEDEP}] )
+ utils? ( =net-dns/avahi-gtk3-${PVR}[utils,${MULTILIB_USEDEP}] )
+ gtk3? ( =net-dns/avahi-gtk3-${PVR}[${MULTILIB_USEDEP}] )
+ mono? ( =net-dns/avahi-mono-${PVR}[${MULTILIB_USEDEP}] )
+ qt4? ( =net-dns/avahi-qt-${PVR}[${MULTILIB_USEDEP}] )"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${DEPEND}"
diff --git a/net-dns/avahi/metadata.xml b/net-dns/avahi/metadata.xml
new file mode 100644
index 00000000..d8e743d4
--- /dev/null
+++ b/net-dns/avahi/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>swegener@gentoo.org</email>
+</maintainer>
+<use>
+ <flag name='autoipd'>Build and install the IPv4LL (RFC3927) network address
+ configuration daemon</flag>
+ <flag name='bookmarks'>Install the avahi-bookmarks application (requires
+ <pkg>dev-python/twisted</pkg>)</flag>
+ <flag name='howl-compat'>Enable compat libraries for howl</flag>
+ <flag name='mdnsresponder-compat'>Enable compat libraries for
+ mDNSResponder</flag>
+</use>
+</pkgmetadata>