commit: 80c97455ba0a46d74deee8c683fabfc461585427 Author: Ian Stakenvicius <axs <AT> gentoo <DOT> org> AuthorDate: Tue Apr 28 14:08:53 2015 +0000 Commit: Ian Stakenvicius <axs <AT> gentoo <DOT> org> CommitDate: Tue Apr 28 14:10:30 2015 +0000 URL: https://gitweb.gentoo.org/proj/kde-sunset.git/commit/?id=80c97455
net-dns/avahi: brought current stable from gentoo repo, re-adding qt3 flag Signed-off-by: Ian Stakenvicius <axs <AT> gentoo.org> net-dns/avahi/avahi-0.6.31-r6.ebuild | 249 +++++++++++++++++++++ .../avahi-0.6.31-build-client-without-daemon.patch | 27 +++ .../files/avahi-0.6.31-fix-locale-build.patch | 20 ++ ...reuseport-may-not-exist-in-running-kernel.patch | 30 +++ 4 files changed, 326 insertions(+) diff --git a/net-dns/avahi/avahi-0.6.31-r6.ebuild b/net-dns/avahi/avahi-0.6.31-r6.ebuild new file mode 100644 index 0000000..0d03a58 --- /dev/null +++ b/net-dns/avahi/avahi-0.6.31-r6.ebuild @@ -0,0 +1,249 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-dns/avahi/avahi-0.6.31-r6.ebuild,v 1.11 2015/04/08 18:16:54 mgorny Exp $ + +EAPI="5" + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="gdbm" + +WANT_AUTOMAKE=1.11 + +inherit autotools eutils flag-o-matic multilib multilib-minimal mono-env \ + python-r1 systemd user + +DESCRIPTION="System which facilitates service discovery on a local network" +HOMEPAGE="http://avahi.org/" +SRC_URI="http://avahi.org/download/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-linux" +IUSE="autoipd bookmarks dbus doc gdbm gtk gtk3 howl-compat +introspection ipv6 kernel_linux mdnsresponder-compat mono nls python qt3 qt4 selinux test utils" + +REQUIRED_USE=" + utils? ( || ( gtk gtk3 ) ) + python? ( dbus gdbm ) + mono? ( dbus ) + howl-compat? ( dbus ) + mdnsresponder-compat? ( dbus ) +" + +COMMON_DEPEND=" + dev-libs/libdaemon + dev-libs/expat + >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] + gdbm? ( >=sys-libs/gdbm-1.10-r1[${MULTILIB_USEDEP}] ) + qt3? ( dev-qt/qt-meta:3 ) + qt4? ( dev-qt/qtcore:4 ) + gtk? ( x11-libs/gtk+:2 ) + gtk3? ( x11-libs/gtk+:3 ) + dbus? ( >=sys-apps/dbus-1.6.18-r1[${MULTILIB_USEDEP}] ) + kernel_linux? ( sys-libs/libcap ) + introspection? ( dev-libs/gobject-introspection ) + mono? ( + dev-lang/mono + gtk? ( dev-dotnet/gtk-sharp ) + ) + python? ( + ${PYTHON_DEPS} + gtk? ( dev-python/pygtk ) + dbus? ( dev-python/dbus-python ) + ) + bookmarks? ( + dev-python/twisted-core + dev-python/twisted-web + ) +" + +DEPEND=" + ${COMMON_DEPEND} + dev-util/intltool + >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] + doc? ( + app-doc/doxygen + ) +" + +RDEPEND=" + ${COMMON_DEPEND} + howl-compat? ( !net-misc/howl ) + mdnsresponder-compat? ( !net-misc/mDNSResponder ) + selinux? ( sec-policy/selinux-avahi ) +" + +MULTILIB_WRAPPED_HEADERS=( + # necessary until the UI libraries are ported + /usr/include/avahi-qt4/qt-watch.h + /usr/include/avahi-ui/avahi-ui.h +) + +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 +} + +pkg_setup() { + use mono && mono-env_pkg_setup +} + +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}"/${PN}-0.6.30-optional-gtk-utils.patch + + # Fix init scripts for >=openrc-0.9.0, bug #383641 + epatch "${FILESDIR}"/${PN}-0.6.x-openrc-0.9.x-init-scripts-fixes.patch + + # install-exec-local -> install-exec-hook + epatch "${FILESDIR}"/${P}-install-exec-hook.patch + + # Backport host-name-from-machine-id patch, bug #466134 + epatch "${FILESDIR}"/${P}-host-name-from-machine-id.patch + + # Don't install avahi-discover unless ENABLE_GTK_UTILS, bug #359575 + epatch "${FILESDIR}"/${P}-fix-install-avahi-discover.patch + + epatch "${FILESDIR}"/${P}-so_reuseport-may-not-exist-in-running-kernel.patch + + # allow building client without the daemon + epatch "${FILESDIR}"/${P}-build-client-without-daemon.patch + + # Fix build under various locales, bug #501664 + epatch "${FILESDIR}"/${P}-fix-locale-build.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) + $(multilib_native_use_enable gtk pygtk) + ) + fi + + if use mono; then + myconf+=( $(multilib_native_use_enable doc monodoc) ) + 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 \ + --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) \ + $(multilib_native_use_enable mono) \ + $(use_enable dbus) \ + $(multilib_native_use_enable python) \ + $(multilib_native_use_enable gtk) \ + $(multilib_native_use_enable gtk3) \ + $(use_enable nls) \ + $(multilib_native_use_enable introspection) \ + $(multilib_native_use_enable utils gtk-utils) \ + $(multilib_native_use_enable qt3) \ + $(multilib_native_use_enable qt4) \ + $(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}" + use bookmarks && use python && use dbus && use gtk || \ + 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)/netifrc/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/files/avahi-0.6.31-build-client-without-daemon.patch b/net-dns/avahi/files/avahi-0.6.31-build-client-without-daemon.patch new file mode 100644 index 0000000..df0c420 --- /dev/null +++ b/net-dns/avahi/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?= <[email protected]> +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/files/avahi-0.6.31-fix-locale-build.patch b/net-dns/avahi/files/avahi-0.6.31-fix-locale-build.patch new file mode 100644 index 0000000..b0e47e9 --- /dev/null +++ b/net-dns/avahi/files/avahi-0.6.31-fix-locale-build.patch @@ -0,0 +1,20 @@ +avahi-gobject fails to build under et_EE and possibly other locales. + +The regex for a sed in avahi-gobject/Makefile fails under various locales. +Forcing LC_ALL=C fixes the issue. + +X-Gentoo-Bug: 501664 +X-Gentoo-Bug-URL: https://bugs.gentoo.org/501664 + +diff -Naur avahi-0.6.31.orig/avahi-gobject/Makefile.am avahi-0.6.31/avahi-gobject/Makefile.am +--- avahi-0.6.31.orig/avahi-gobject/Makefile.am 2010-08-25 20:51:39.007153001 -0400 ++++ avahi-0.6.31/avahi-gobject/Makefile.am 2014-09-07 19:00:05.485657990 -0400 +@@ -76,7 +76,7 @@ + + signals-marshal.list: $(CORE_SOURCES) Makefile.am + $(AM_V_GEN)( cd $(srcdir) && \ +- sed -n -e 's/.*_ga_signals_marshal_\([A-Z]*__[A-Z_]*\).*/\1/p' \ ++ LC_ALL=C sed -n -e 's/.*_ga_signals_marshal_\([A-Z]*__[A-Z_]*\).*/\1/p' \ + $(CORE_SOURCES) ) \ + | sed -e 's/__/:/' -e 'y/_/,/' | sort -u > [email protected] && \ + if cmp -s [email protected] $@; then \ diff --git a/net-dns/avahi/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch b/net-dns/avahi/files/avahi-0.6.31-so_reuseport-may-not-exist-in-running-kernel.patch new file mode 100644 index 0000000..9c23ca5 --- /dev/null +++ b/net-dns/avahi/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 <[email protected]> +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 +
