--- avahi-daemon/main.c.orig 2015-10-09 16:51:25.000000000 -0700 +++ avahi-daemon/main.c 2017-10-08 14:01:26.000000000 -0700 @@ -587,11 +587,17 @@ 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); +#ifdef O_CLOEXEC + fd = open("__MACPORTS_PREFIX__/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY); +#else + fd = open("__MACPORTS_PREFIX__/var/lib/dbus/machine-id", O_RDONLY|O_NOCTTY); +#endif if (fd == -1) return NULL; +#ifndef O_CLOEXEC + if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) + return NULL; +#endif /* File is on a filesystem so we never get EINTR or partial reads */ if (read(fd, buf, sizeof buf) != sizeof buf) {