git: 3437a65039c6 - main - net/avahi-app: Add Netlink support
Date: Sat, 22 Feb 2025 11:58:09 UTC
The branch main has been updated by arrowd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3437a65039c6414376e2018349fa896a1f03c66c
commit 3437a65039c6414376e2018349fa896a1f03c66c
Author: Жунёва Мария Михайловна <zhunyova@mts.ru>
AuthorDate: 2025-02-20 14:19:21 +0000
Commit: Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2025-02-22 11:58:03 +0000
net/avahi-app: Add Netlink support
Sponsored by: Future Crew, LLC
Pull Request: https://github.com/freebsd/freebsd-ports/pull/349
---
net/avahi-app/Makefile | 8 ++--
net/avahi-app/files/patch-avahi-core_netlink.c | 57 ++++++++++++++++++++++++++
net/avahi-app/files/patch-avahi-core_netlink.h | 21 ++++++++++
net/avahi-app/files/patch-configure.ac | 18 ++++++++
4 files changed, 101 insertions(+), 3 deletions(-)
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,6 +1,6 @@
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
@@ -25,12 +25,11 @@ LIB_DEPENDS?= libexpat.so:textproc/expat2 \
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 \
@@ -132,6 +131,9 @@ avahi-pre-su-install:
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}
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 <sys/socket.h>
+ #include <asm/types.h>
+ #include <inttypes.h>
+
+ #include <linux/netlink.h>
+ #include <linux/rtnetlink.h>
++#else
++#include <netlink/netlink.h>
++#include <netlink/netlink_route.h>
++#endif
+
+ #include <avahi-common/watch.h>
+
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 <asm/types.h>
+ ])
+
++
++#
++# 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 ])
+
+ #