aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--network/avahi/avahi-discover.116
-rw-r--r--network/avahi/avahi.SlackBuild32
-rw-r--r--network/avahi/avahi.info6
-rw-r--r--network/avahi/bssh.136
-rw-r--r--network/avahi/build-db49
-rw-r--r--network/avahi/doinst.sh1
-rw-r--r--network/avahi/ipv6_race_condition_fix.patch51
7 files changed, 170 insertions, 21 deletions
diff --git a/network/avahi/avahi-discover.1 b/network/avahi/avahi-discover.1
new file mode 100644
index 0000000000000..085ff1354e15c
--- /dev/null
+++ b/network/avahi/avahi-discover.1
@@ -0,0 +1,16 @@
+.TH avahi-discover 1 User Manuals
+.SH NAME
+avahi-discover \- Browse for mDNS/DNS-SD services using the Avahi daemon
+.SH SYNOPSIS
+\fBavahi-discover
+\f1
+.SH DESCRIPTION
+Show a real-time graphical browse list for mDNS/DNS-SD network services running on the local LAN using the Avahi daemon.
+.SH OPTIONS
+avahi-discover takes no command line arguments at the moment.
+.SH AUTHORS
+The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from \fBhttp://avahi.org/\f1
+.SH SEE ALSO
+\fBavahi-daemon(8)\f1, \fBavahi-browse(1)\f1
+.SH COMMENTS
+This man page was written using \fBxml2man(1)\f1 by Oliver Kurth.
diff --git a/network/avahi/avahi.SlackBuild b/network/avahi/avahi.SlackBuild
index 05936187384c7..f95c392152b8d 100644
--- a/network/avahi/avahi.SlackBuild
+++ b/network/avahi/avahi.SlackBuild
@@ -2,11 +2,8 @@
# Slackware build script for avahi
-# Written by David Somero <dsomero@hotmail.com>
-# Derived from Slackware's Slackbuilds.
-#
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
# Copyright 2008-2012 David Somero (dsomero@hotmail.com) Athens, TN, USA
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +24,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=avahi
-VERSION=${VERSION:-0.7}
+VERSION=${VERSION:-0.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -96,8 +93,17 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Thanks to Robby Workman for this patch.
patch -p1 --verbose < $CWD/fixup_avahi-dnsconfd.action.patch
+patch -p1 --verbose < $CWD/ipv6_race_condition_fix.patch # thanks, LFS
+
+# Okay, I had to cheat a bit on the manual pages; there's a commit
+# in git that will fix this, so I just built a git checkout, grabbed
+# the built manual pages, and we'll drop them into place so the build
+# will work for this released version...
+cat $CWD/build-db > service-type-database/build-db
+chmod 0755 service-type-database/build-db
+cat $CWD/bssh.1 > man/bssh.1
+cat $CWD/avahi-discover.1 > man/avahi-discover.1
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -108,23 +114,21 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
+ --with-systemdsystemunitdir=no \
--enable-tests \
--disable-static \
--disable-monodoc \
--disable-autoipd \
--enable-python-dbus \
- --enable-pygtk\
--enable-glib \
--enable-dbus \
--enable-python \
--enable-gtk \
--enable-gtk3 \
- --enable-qt4 \
+ --disable-qt4 \
--disable-qt3 \
--enable-core-docs \
- --enable-compat-howl \
- --enable-compat-libdns_sd \
- --with-dbus-sys=/etc/dbus-1/system.d \
+ --with-dbus-sys=/usr/share/dbus-1/system.d \
--with-avahi-user=avahi \
--with-avahi-group=avahi \
--with-avahi-priv-access-group=netdev \
@@ -137,10 +141,6 @@ CXXFLAGS="$SLKCFLAGS" \
make
make install DESTDIR=$PKG
-# howl and mdnsresponder compatability
-(cd $PKG/usr/include; ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h; ln -s avahi-compat-howl howl)
-(cd $PKG/usr/lib$LIBDIRSUFFIX/pkgconfig; ln -s avahi-compat-howl.pc howl.pc)
-
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
@@ -150,8 +150,6 @@ for i in $(find $PKG/usr/man -type l); do ln -s $(readlink $i).gz $i.gz; rm $i;
mv $PKG/etc/rc.d/rc.avahidaemon $PKG/etc/rc.d/rc.avahidaemon.new
mv $PKG/etc/rc.d/rc.avahidnsconfd $PKG/etc/rc.d/rc.avahidnsconfd.new
mv $PKG/etc/avahi/avahi-daemon.conf $PKG/etc/avahi/avahi-daemon.conf.new
-mv $PKG/etc/dbus-1/system.d/avahi-dbus.conf \
- $PKG/etc/dbus-1/system.d/avahi-dbus.conf.new
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a LICENSE docs/* $PKG/usr/doc/$PRGNAM-$VERSION
diff --git a/network/avahi/avahi.info b/network/avahi/avahi.info
index 7f842f50e1308..ced5e61121b45 100644
--- a/network/avahi/avahi.info
+++ b/network/avahi/avahi.info
@@ -1,8 +1,8 @@
PRGNAM="avahi"
-VERSION="0.7"
+VERSION="0.8"
HOMEPAGE="http://avahi.org/"
-DOWNLOAD="https://github.com/lathiat/avahi/releases/download/v0.7/avahi-0.7.tar.gz"
-MD5SUM="d76c59d0882ac6c256d70a2a585362a6"
+DOWNLOAD="https://github.com/lathiat/avahi/releases/download/v0.8/avahi-0.8.tar.gz"
+MD5SUM="229c6aa30674fc43c202b22c5f8c2be7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libdaemon"
diff --git a/network/avahi/bssh.1 b/network/avahi/bssh.1
new file mode 100644
index 0000000000000..913554eb3044a
--- /dev/null
+++ b/network/avahi/bssh.1
@@ -0,0 +1,36 @@
+.TH bssh/bvnc/bshell 1 User Manuals
+.SH NAME
+bssh/bvnc/bshell \- Browse for SSH/VNC servers on the local network
+.SH SYNOPSIS
+\fBbssh
+
+bvnc
+
+bshell
+\f1
+.SH DESCRIPTION
+bssh/bvnc/bshell browses for SSH/VNC servers on the local network, shows them in a GUI for the user to select one and finally calls ssh/vncviewer after a selection was made.
+
+If the binary is called as bssh only ssh servers will be shown. If the binary is called as bvnc only VNC servers will be shown. If the binary is called as bshell both VNC and SSH servers are shown.
+.SH OPTIONS
+.TP
+\fB-s | --ssh\f1
+Browse for SSH servers (and only SSH servers) regardless under which name the binary is called.
+.TP
+\fB-v | --vnc\f1
+Browse for VNC servers (and only VNC servers) regardless under which name the binary is called.
+.TP
+\fB-S | --shell\f1
+Browse for both VNC and SSH servers regardless under which name the binary is called.
+.TP
+\fB-d | --domain=\f1 \fIDOMAIN\f1
+Browse in the specified domain. If omitted bssh/bvnc/bshell will browse in the default browsing domain (usually .local)
+.TP
+\fB-h | --help\f1
+Show help.
+.SH AUTHORS
+The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from \fBhttp://avahi.org/\f1
+.SH SEE ALSO
+\fBavahi-browse(1)\f1, \fBssh(1)\f1, \fBvncviewer(1)\f1
+.SH COMMENTS
+This man page was written using \fBxml2man(1)\f1 by Oliver Kurth.
diff --git a/network/avahi/build-db b/network/avahi/build-db
new file mode 100644
index 0000000000000..78ee892f606ea
--- /dev/null
+++ b/network/avahi/build-db
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# -*-python-*-
+# This file is part of avahi.
+#
+# avahi is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# avahi is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with avahi; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA.
+
+try:
+ import anydbm as dbm
+except ImportError:
+ import dbm
+
+import sys
+
+if len(sys.argv) > 1:
+ infn = sys.argv[1]
+else:
+ infn = "service-types"
+
+if len(sys.argv) > 2:
+ outfn = sys.argv[2]
+else:
+ outfn = infn + ".db"
+
+db = dbm.open(outfn, "n")
+
+for ln in open(infn, "r"):
+ ln = ln.strip(" \r\n\t")
+
+ if ln == "" or ln.startswith("#"):
+ continue
+
+ t, n = ln.split(":", 1)
+
+ db[t.strip()] = n.strip()
+
+db.close()
diff --git a/network/avahi/doinst.sh b/network/avahi/doinst.sh
index d22f3fa39410c..9bf5bd8772089 100644
--- a/network/avahi/doinst.sh
+++ b/network/avahi/doinst.sh
@@ -26,7 +26,6 @@ preserve_perms() {
preserve_perms etc/rc.d/rc.avahidaemon.new
preserve_perms etc/rc.d/rc.avahidnsconfd.new
preserve_perms etc/avahi/avahi-daemon.conf.new
-preserve_perms etc/dbus-1/system.d/avahi-dbus.conf.new
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
diff --git a/network/avahi/ipv6_race_condition_fix.patch b/network/avahi/ipv6_race_condition_fix.patch
new file mode 100644
index 0000000000000..3418b1a11c4bf
--- /dev/null
+++ b/network/avahi/ipv6_race_condition_fix.patch
@@ -0,0 +1,51 @@
+Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org>
+Date: 2020-10-19
+Initial Package Version: 0.8
+Upstream Status: PR, not applied
+Origin: Upstream PR (github.com/lathiat/avahi/pull/309)
+Description: Fixes a race condition when multiple NICs are in use
+ when IPv6 is enabled. This will exhibit behavior where
+ messages about withdrawing address records, registering
+ access records, and new hostname announcements are
+ spammed to the log every second.
+
+diff -Naurp avahi-0.8.orig/avahi-core/server.c avahi-0.8/avahi-core/server.c
+--- avahi-0.8.orig/avahi-core/server.c 2020-02-16 21:41:24.939967558 -0600
++++ avahi-0.8/avahi-core/server.c 2020-10-19 11:07:22.054861721 -0500
+@@ -193,7 +193,7 @@ static void withdraw_rrset(AvahiServer *
+ withdraw_entry(s, e);
+ }
+
+-static void incoming_probe(AvahiServer *s, AvahiRecord *record, AvahiInterface *i) {
++static void incoming_probe(AvahiServer *s, AvahiRecord *record, AvahiInterface *i, int from_local_iface) {
+ AvahiEntry *e, *n;
+ int ours = 0, won = 0, lost = 0;
+
+@@ -210,7 +210,7 @@ static void incoming_probe(AvahiServer *
+ if (e->dead)
+ continue;
+
+- if ((cmp = avahi_record_lexicographical_compare(e->record, record)) == 0) {
++ if ((cmp = avahi_record_lexicographical_compare(e->record, record)) == 0 || from_local_iface) {
+ ours = 1;
+ break;
+ } else {
+@@ -639,7 +639,7 @@ static void handle_query_packet(AvahiSer
+ if (!avahi_key_is_pattern(record->key)) {
+ if (!from_local_iface)
+ reflect_probe(s, i, record);
+- incoming_probe(s, record, i);
++ incoming_probe(s, record, i, from_local_iface);
+ }
+
+ avahi_record_unref(record);
+@@ -961,8 +961,7 @@ static void dispatch_packet(AvahiServer
+ return;
+
+ /* We don't want to reflect local traffic, so we check if this packet is generated locally. */
+- if (s->config.enable_reflector)
+- from_local_iface = originates_from_local_iface(s, iface, src_address, port);
++ from_local_iface = originates_from_local_iface(s, iface, src_address, port);
+
+ if (avahi_dns_packet_check_valid_multicast(p) < 0) {
+ avahi_log_debug("Received invalid packet.");