diff --git a/net/avahi-app/Makefile b/net/avahi-app/Makefile index 9914a245e923..11b5d513fa28 100644 --- a/net/avahi-app/Makefile +++ b/net/avahi-app/Makefile @@ -1,155 +1,157 @@ PORTNAME= avahi PORTVERSION= 0.8 -PORTREVISION?= 2 # don't delete, reset to 0, check slave ports +PORTREVISION?= 3 # don't delete, reset to 0, check slave ports CATEGORIES?= net dns MASTER_SITES= http://www.avahi.org/download/ PKGNAMESUFFIX?= -app MAINTAINER?= desktop@FreeBSD.org COMMENT?= Service discovery on a local network WWW= https://www.avahi.org/ LICENSE= LGPL21+ LICENSE_FILE= ${WRKSRC}/LICENSE AVAHI_SLAVE?= no .if ${AVAHI_SLAVE} != header LIB_DEPENDS?= libexpat.so:textproc/expat2 \ libdaemon.so:devel/libdaemon \ libdbus-glib-1.so:devel/dbus-glib \ libdbus-1.so:devel/dbus \ libgdbm.so:databases/gdbm \ libevent.so:devel/libevent USERS?= ${PORTNAME} GROUPS?= ${USERS} -USES+= alias cpe gettext gmake gnome libtool pathfix pkgconfig +USES+= autoreconf alias cpe gettext gmake gnome libtool pathfix pkgconfig USE_GNOME+= glib20 intltool introspection:build USE_GNOME_SUBR= yes USE_LDCONFIG= yes GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS?=--with-distro=freebsd \ --with-dbus-system-socket=unix:path=/var/run/dbus/system_bus_socket \ --enable-introspection=yes \ --disable-static \ --disable-monodoc \ --disable-doxygen-doc \ --disable-doxygen-dot \ --disable-qt3 \ --disable-qt4 \ --localstatedir=/var \ --enable-compat-howl CPPFLAGS+= -I${LOCALBASE}/include -DHAVE_KQUEUE LDFLAGS+= -L${LOCALBASE}/lib -lintl INSTALL_TARGET= install-strip .if ${AVAHI_SLAVE} == no CONFLICTS= howl DAEMON_CONFIG_FILES= hosts avahi-daemon.conf .endif .endif # !avahi-header .include .if ${AVAHI_SLAVE} != header .if ${AVAHI_SLAVE} == autoipd CONFIGURE_ARGS+=--enable-autoipd .else CONFIGURE_ARGS+=--disable-autoipd .endif .if ${AVAHI_SLAVE} == gtk # We disable man pages, because bssh.1 is not generated (no xmltoman port) CONFIGURE_ARGS+=--enable-gtk \ --disable-manpages .else CONFIGURE_ARGS+=--disable-gtk .endif .if ${AVAHI_SLAVE} == gtk3 CONFIGURE_ARGS+=--enable-gtk3 .else CONFIGURE_ARGS+=--disable-gtk3 .endif .if ${AVAHI_SLAVE} == libdns CONFIGURE_ARGS+=--enable-compat-libdns_sd .else CONFIGURE_ARGS+=--disable-compat-libdns_sd .endif .if ${AVAHI_SLAVE} == python CONFIGURE_ARGS+=--enable-python .else CONFIGURE_ARGS+=--disable-python .endif .if ${AVAHI_SLAVE} == qt5 CONFIGURE_ARGS+=--enable-qt5 \ --disable-expat \ --disable-gdbm .else CONFIGURE_ARGS+=--disable-qt5 .endif .if ${AVAHI_SLAVE} == sharp CONFIGURE_ARGS+=--enable-mono .else CONFIGURE_ARGS+=--disable-mono .endif CONFIGURE_ARGS+=--disable-stack-protector post-patch: avahi-post-patch avahi-post-patch: @${REINPLACE_CMD} -e 's|avahi_runtime_dir="/run"|avahi_runtime_dir="/var/run"|' \ ${WRKSRC}/configure @${RM} ${WRKSRC}/man/*.bak @${REINPLACE_CMD} -e 's|-ldl||g ; s|netdev|network|g' \ ${WRKSRC}/configure \ ${WRKSRC}/avahi-client/Makefile.in \ ${WRKSRC}/avahi-daemon/Makefile.in @${REINPLACE_CMD} -e 's|have_inotify=yes|have_inotify=no|' \ ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%GNOME_SUBR%%|${GNOME_SUBR}|' \ ${WRKSRC}/initscript/freebsd/avahi-dnsconfd.sh.in \ ${WRKSRC}/initscript/freebsd/avahi-daemon.sh.in post-build: avahi-post-build avahi-post-build: .for f in ${AVAHI_PKGCONFIG} @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \ ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${f} .endfor pre-su-install: avahi-pre-su-install avahi-pre-su-install: .if ${AVAHI_SLAVE}=="no" @${MKDIR} ${STAGEDIR}${PREFIX}/lib/avahi @${TOUCH} -f ${STAGEDIR}${PREFIX}/lib/avahi/.keep .endif post-install: avahi-post-install avahi-post-install: + @${RMDIR} ${STAGEDIR}/run + ${MV} ${STAGEDIR}${PREFIX}/etc/rc.d/avahi-daemon.sh ${STAGEDIR}${PREFIX}/etc/rc.d/avahi-daemon + ${MV} ${STAGEDIR}${PREFIX}/etc/rc.d/avahi-dnsconfd.sh ${STAGEDIR}${PREFIX}/etc/rc.d/avahi-dnsconfd .if defined(MANPAGES) && ${AVAHI_SLAVE} != gtk .for f in ${MANPAGES} ${INSTALL_DATA} ${WRKSRC}/man/${f} ${STAGEDIR}${PREFIX}/share/man/man${f:E}/${f} .endfor .endif .for f in ${AVAHI_PKGCONFIG} ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${PREFIX}/libdata/pkgconfig .endfor .for f in ${DAEMON_CONFIG_FILES} ${MKDIR} ${STAGEDIR}${PREFIX}/etc/avahi ${INSTALL_DATA} ${WRKSRC}/avahi-daemon/${f} \ ${STAGEDIR}${PREFIX}/etc/avahi/${f}.sample .endfor .if ${AVAHI_SLAVE}==no ${MKDIR} ${STAGEDIR}${PREFIX}/share/dbus-1/system-services ${INSTALL_DATA} ${WRKSRC}/avahi-daemon/org.freedesktop.Avahi.service \ ${STAGEDIR}${PREFIX}/share/dbus-1/system-services .endif .endif # ! avahi-header .include diff --git a/net/avahi-app/files/patch-avahi-core_netlink.c b/net/avahi-app/files/patch-avahi-core_netlink.c new file mode 100644 index 000000000000..e223080f20c5 --- /dev/null +++ b/net/avahi-app/files/patch-avahi-core_netlink.c @@ -0,0 +1,57 @@ +--- avahi-core/netlink.c.orig 2015-10-10 00:20:03 UTC ++++ avahi-core/netlink.c +@@ -50,8 +50,9 @@ int avahi_netlink_work(AvahiNetlink *nl, int block) { + struct ucred *cred; + struct iovec iov; + struct nlmsghdr *p; ++#ifdef SO_PASSCRED + char cred_msg[CMSG_SPACE(sizeof(struct ucred))]; +- ++#endif + assert(nl); + + iov.iov_base = nl->buffer; +@@ -61,8 +62,10 @@ int avahi_netlink_work(AvahiNetlink *nl, int block) { + smsg.msg_namelen = 0; + smsg.msg_iov = &iov; + smsg.msg_iovlen = 1; ++#ifdef SO_PASSCRED + smsg.msg_control = cred_msg; + smsg.msg_controllen = sizeof(cred_msg); ++#endif + smsg.msg_flags = (block ? 0 : MSG_DONTWAIT); + + if ((bytes = recvmsg(nl->fd, &smsg, 0)) < 0) { +@@ -74,7 +77,7 @@ int avahi_netlink_work(AvahiNetlink *nl, int block) { + } + + cmsg = CMSG_FIRSTHDR(&smsg); +- ++#ifdef SO_PASSCRED + if (!cmsg || cmsg->cmsg_type != SCM_CREDENTIALS) { + avahi_log_warn("No sender credentials received, ignoring data."); + return -1; +@@ -84,7 +87,7 @@ int avahi_netlink_work(AvahiNetlink *nl, int block) { + + if (cred->pid != 0) + return -1; +- ++#endif + p = (struct nlmsghdr *) nl->buffer; + + assert(nl->callback); +@@ -134,12 +137,12 @@ AvahiNetlink *avahi_netlink_new(const AvahiPoll *poll_ + avahi_log_error(__FILE__": bind(): %s", strerror(errno)); + goto fail; + } +- ++#ifdef SO_PASSCRED + if (setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)) < 0) { + avahi_log_error(__FILE__": SO_PASSCRED: %s", strerror(errno)); + goto fail; + } +- ++#endif + if (!(nl = avahi_new(AvahiNetlink, 1))) { + avahi_log_error(__FILE__": avahi_new() failed."); + goto fail; diff --git a/net/avahi-app/files/patch-avahi-core_netlink.h b/net/avahi-app/files/patch-avahi-core_netlink.h new file mode 100644 index 000000000000..1ba13d3c00d5 --- /dev/null +++ b/net/avahi-app/files/patch-avahi-core_netlink.h @@ -0,0 +1,21 @@ +--- avahi-core/netlink.h.orig 2015-04-01 04:58:14 UTC ++++ avahi-core/netlink.h +@@ -19,13 +19,17 @@ + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. + ***/ +- ++#ifdef __linux__ + #include + #include + #include + + #include + #include ++#else ++#include ++#include ++#endif + + #include + diff --git a/net/avahi-app/files/patch-configure.ac b/net/avahi-app/files/patch-configure.ac new file mode 100644 index 000000000000..27e0edf9e67f --- /dev/null +++ b/net/avahi-app/files/patch-configure.ac @@ -0,0 +1,18 @@ +--- configure.ac.orig 2020-02-18 07:01:15 UTC ++++ configure.ac +@@ -166,6 +166,15 @@ AC_DEFINE([HAVE_NETLINK],[],[Support for Linux netlink + #include + ]) + ++ ++# ++# Check for freebsd netlink.h ++# ++AC_CHECK_HEADER(netlink/netlink.h, ++HAVE_NETLINK=yes ++AC_DEFINE([HAVE_NETLINK],[],[Support for FreeBSD netlink]) ++, [], []) ++ + AM_CONDITIONAL(HAVE_NETLINK, [ test x"$HAVE_NETLINK" = xyes ]) + + #