Sync from SUSE:SLFO:Main avahi revision 1cb9aff61203ac958231336d2ff5fbf5
This commit is contained in:
commit
d89aa177ff
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
@ -0,0 +1,27 @@
|
|||||||
|
From 1905a6b878064c6cc9bb96a1fc17ef77c75787c6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Biebl <biebl@debian.org>
|
||||||
|
Date: Sun, 17 Sep 2017 10:57:47 +0200
|
||||||
|
Subject: [PATCH 01/10] man: fix reference to avahi-autoipd.action(8) in
|
||||||
|
avahi-autoipd(8)
|
||||||
|
|
||||||
|
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=840833
|
||||||
|
---
|
||||||
|
man/avahi-autoipd.8.xml.in | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/avahi-autoipd.8.xml.in b/man/avahi-autoipd.8.xml.in
|
||||||
|
index 7137c30..23764a5 100644
|
||||||
|
--- a/man/avahi-autoipd.8.xml.in
|
||||||
|
+++ b/man/avahi-autoipd.8.xml.in
|
||||||
|
@@ -150,7 +150,7 @@
|
||||||
|
|
||||||
|
<section name="See also">
|
||||||
|
<p>
|
||||||
|
- <manref name="autoipd.action" section="8"/>, <manref name="dhclient" section="8"/>
|
||||||
|
+ <manref name="avahi-autoipd.action" section="8"/>, <manref name="dhclient" section="8"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>http://avahi.org/wiki/AvahiAutoipd documents how avahi-autoipd is best packaged and integrated into distributions.</p>
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
@ -0,0 +1,25 @@
|
|||||||
|
From 9c3a314856affb288f701d2d3ee23278fc98eaee Mon Sep 17 00:00:00 2001
|
||||||
|
From: Steve Langasek <steve.langasek@ubuntu.com>
|
||||||
|
Date: Tue, 18 Feb 2020 15:43:19 +0800
|
||||||
|
Subject: [PATCH 05/10] avahi-dnsconfd.service: Drop "Also=avahi-daemon.socket"
|
||||||
|
|
||||||
|
Also=avahi-daemon.socket' means that 'systemctl disable avahi-dnsconfd'
|
||||||
|
ill also disable avahi-daemon.socket, which is definitely not what we
|
||||||
|
ant, and it also causes debhelper to throw an error. Just drop this
|
||||||
|
entry from the configuration.
|
||||||
|
---
|
||||||
|
avahi-dnsconfd/avahi-dnsconfd.service.in | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/avahi-dnsconfd/avahi-dnsconfd.service.in b/avahi-dnsconfd/avahi-dnsconfd.service.in
|
||||||
|
index 95db79f..7c293da 100644
|
||||||
|
--- a/avahi-dnsconfd/avahi-dnsconfd.service.in
|
||||||
|
+++ b/avahi-dnsconfd/avahi-dnsconfd.service.in
|
||||||
|
@@ -26,4 +26,3 @@ ExecStart=@sbindir@/avahi-dnsconfd -s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
-Also=avahi-daemon.socket
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
35
0006-man-add-missing-bshell.1-symlink.patch
Normal file
35
0006-man-add-missing-bshell.1-symlink.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From f983df44870b602179b493f9c3d113753b378e27 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Biebl <biebl@debian.org>
|
||||||
|
Date: Sun, 17 Sep 2017 12:52:39 +0200
|
||||||
|
Subject: [PATCH 06/10] man: add missing bshell.1 symlink
|
||||||
|
|
||||||
|
The bshell binary is missing a symlink to its manual page. It should be
|
||||||
|
symlinked to the man page for bssh, just like how the bvnc man page is.
|
||||||
|
|
||||||
|
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=655190
|
||||||
|
---
|
||||||
|
man/Makefile.am | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/Makefile.am b/man/Makefile.am
|
||||||
|
index d38267c..77a27bd 100644
|
||||||
|
--- a/man/Makefile.am
|
||||||
|
+++ b/man/Makefile.am
|
||||||
|
@@ -137,12 +137,13 @@ BSSH_LN =
|
||||||
|
if HAVE_GTK
|
||||||
|
if HAVE_GLIB
|
||||||
|
BSSH_LN += $(LN_S) bssh.1 bvnc.1 &&
|
||||||
|
+BSSH_LN += $(LN_S) bssh.1 bshell.1 &&
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
install-exec-local:
|
||||||
|
mkdir -p $(DESTDIR)/$(mandir)/man1 && \
|
||||||
|
cd $(DESTDIR)/$(mandir)/man1 && \
|
||||||
|
- rm -f avahi-resolve-host-name.1 avahi-resolve-address.1 avahi-browse-domains.1 avahi-publish-address.1 avahi-publish-service.1 bvnc.1 && \
|
||||||
|
+ rm -f avahi-resolve-host-name.1 avahi-resolve-address.1 avahi-browse-domains.1 avahi-publish-address.1 avahi-publish-service.1 bvnc.1 bshell.1 && \
|
||||||
|
$(BSSH_LN) \
|
||||||
|
$(LN_S) avahi-resolve.1 avahi-resolve-host-name.1 && \
|
||||||
|
$(LN_S) avahi-resolve.1 avahi-resolve-address.1 && \
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
@ -0,0 +1,52 @@
|
|||||||
|
From 751be804e891aec5701a059144e2f5cbfc981b36 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andreas Henriksson <andreas@fatal.se>
|
||||||
|
Date: Thu, 24 Aug 2017 17:52:19 +0200
|
||||||
|
Subject: [PATCH 07/10] Ship avahi-discover(1), bssh(1) and bvnc(1) also for
|
||||||
|
GTK3
|
||||||
|
|
||||||
|
These manpages went missing when you disabled gtk2 builds....
|
||||||
|
---
|
||||||
|
man/Makefile.am | 9 +++++----
|
||||||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/man/Makefile.am b/man/Makefile.am
|
||||||
|
index 77a27bd..289b942 100644
|
||||||
|
--- a/man/Makefile.am
|
||||||
|
+++ b/man/Makefile.am
|
||||||
|
@@ -56,7 +56,7 @@ man_MANS += \
|
||||||
|
avahi-publish.1 \
|
||||||
|
avahi-set-host-name.1
|
||||||
|
|
||||||
|
-if HAVE_GTK
|
||||||
|
+if HAVE_GTK2OR3
|
||||||
|
man_MANS += \
|
||||||
|
bssh.1
|
||||||
|
endif
|
||||||
|
@@ -64,12 +64,13 @@ endif
|
||||||
|
if HAVE_PYTHON
|
||||||
|
man_MANS += \
|
||||||
|
avahi-bookmarks.1
|
||||||
|
-if HAVE_GTK
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+if HAVE_PYGOBJECT
|
||||||
|
man_MANS += \
|
||||||
|
avahi-discover.1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
-endif
|
||||||
|
|
||||||
|
if ENABLE_AUTOIPD
|
||||||
|
if HAVE_LIBDAEMON
|
||||||
|
@@ -134,7 +135,7 @@ EXTRA_DIST = \
|
||||||
|
if HAVE_DBUS
|
||||||
|
|
||||||
|
BSSH_LN =
|
||||||
|
-if HAVE_GTK
|
||||||
|
+if HAVE_GTK2OR3
|
||||||
|
if HAVE_GLIB
|
||||||
|
BSSH_LN += $(LN_S) bssh.1 bvnc.1 &&
|
||||||
|
BSSH_LN += $(LN_S) bssh.1 bshell.1 &&
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
32
0009-fix-bytestring-decoding-for-proper-display.patch
Normal file
32
0009-fix-bytestring-decoding-for-proper-display.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From a94f72081dd1d546a1d95d860311a1242315bb28 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?=C3=89ric=20Araujo?= <merwok@netwok.org>
|
||||||
|
Date: Sat, 29 Feb 2020 19:14:04 -0500
|
||||||
|
Subject: [PATCH 09/10] fix bytestring decoding for proper display
|
||||||
|
|
||||||
|
---
|
||||||
|
avahi-python/avahi-discover/avahi-discover.py | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/avahi-python/avahi-discover/avahi-discover.py b/avahi-python/avahi-discover/avahi-discover.py
|
||||||
|
index 0db705d..4a2b575 100755
|
||||||
|
--- a/avahi-python/avahi-discover/avahi-discover.py
|
||||||
|
+++ b/avahi-python/avahi-discover/avahi-discover.py
|
||||||
|
@@ -238,12 +238,15 @@ class Main_window:
|
||||||
|
txts+="<b>" + _("TXT") + " <i>%s</i></b> = %s\n" % (k,v)
|
||||||
|
else:
|
||||||
|
txts = "<b>" + _("TXT Data:") + "</b> <i>" + _("empty") + "</i>"
|
||||||
|
+
|
||||||
|
+ txts = txts.decode("utf-8")
|
||||||
|
|
||||||
|
infos = "<b>" + _("Service Type:") + "</b> %s\n"
|
||||||
|
infos += "<b>" + _("Service Name:") + "</b> %s\n"
|
||||||
|
infos += "<b>" + _("Domain Name:") + "</b> %s\n"
|
||||||
|
infos += "<b>" + _("Interface:") + "</b> %s %s\n"
|
||||||
|
infos += "<b>" + _("Address:") + "</b> %s/%s:%i\n%s"
|
||||||
|
+ infos = infos.decode("utf-8")
|
||||||
|
infos = infos % (stype, name, domain, self.siocgifname(interface), self.protoname(protocol), host, address, port, txts.strip())
|
||||||
|
self.info_label.set_markup(infos)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
4
_multibuild
Normal file
4
_multibuild
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>qt5</package>
|
||||||
|
<package>glib2</package>
|
||||||
|
</multibuild>
|
12
add-IT_PROG_INTLTOOL.patch
Normal file
12
add-IT_PROG_INTLTOOL.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Index: avahi-0.8/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- avahi-0.8.orig/configure.ac
|
||||||
|
+++ avahi-0.8/configure.ac
|
||||||
|
@@ -24,6 +24,7 @@ AC_CONFIG_SRCDIR([avahi-core/server.c])
|
||||||
|
AC_CONFIG_MACRO_DIR([common])
|
||||||
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
|
||||||
|
+IT_PROG_INTLTOOL([0.50.1])
|
||||||
|
|
||||||
|
AC_SUBST(PACKAGE_URL, [http://avahi.org/])
|
||||||
|
|
31
attributes
Normal file
31
attributes
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
group.avahi-qt4 System/GUI/KDE
|
||||||
|
summary.avahi-qt4 Qt4 Bindings for avahi, the D-BUS Service for Zeroconf and Bonjour
|
||||||
|
+description.avahi-qt4
|
||||||
|
Qt4 bindings for avahi.
|
||||||
|
|
||||||
|
Avahi is an Implementation the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing. It uses D-BUS for communication
|
||||||
|
between user applications and a system daemon. The daemon is used to
|
||||||
|
coordinate application efforts in caching replies, necessary to
|
||||||
|
minimize the traffic imposed on networks.
|
||||||
|
|
||||||
|
The Avahi mDNS responder is now feature complete implementing all MUSTs
|
||||||
|
and the majority of the SHOULDs of the mDNS/DNS-SD RFCs. It passes all
|
||||||
|
tests in the Apple Bonjour conformance test suite. In addition it
|
||||||
|
supports some nifty things that have never been seen elsewhere like
|
||||||
|
correct mDNS reflection accross LAN segments.
|
||||||
|
-description.avahi-qt4
|
||||||
|
group.avahi-mono Development/Languages/Mono
|
||||||
|
summary.avahi-mono Mono Bindings for avahi, the D-BUS Service for Zeroconf and Bonjour
|
||||||
|
+description.avahi-mono
|
||||||
|
This package provides Mono bindings for avahi. Avahi is an
|
||||||
|
implementation of the DNS Service Discovery and MulticastDNS
|
||||||
|
specifications for Zeroconf Computing. It uses D-BUS for communication
|
||||||
|
between user applications and a system daemon. The daemon is used to
|
||||||
|
coordinate application efforts in caching replies, necessary to
|
||||||
|
minimize the traffic imposed on networks. The Avahi mDNS responder is
|
||||||
|
now feature complete, implementing all MUSTs and the majority of the
|
||||||
|
SHOULDs of the mDNS and DNS-SD RFCs. It passes all tests in the Apple
|
||||||
|
Bonjour conformance test suite. In addition, it supports some nifty
|
||||||
|
things, like correct mDNS reflection across LAN segments.
|
||||||
|
-description.avahi-mono
|
BIN
avahi-0.8.tar.gz
(Stored with Git LFS)
Normal file
BIN
avahi-0.8.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
40
avahi-CVE-2021-3468.patch
Normal file
40
avahi-CVE-2021-3468.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From 447affe29991ee99c6b9732fc5f2c1048a611d3b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Riccardo Schirone <sirmy15@gmail.com>
|
||||||
|
Date: Fri, 26 Mar 2021 11:50:24 +0100
|
||||||
|
Subject: [PATCH] Avoid infinite-loop in avahi-daemon by handling HUP event in
|
||||||
|
client_work
|
||||||
|
|
||||||
|
If a client fills the input buffer, client_work() disables the
|
||||||
|
AVAHI_WATCH_IN event, thus preventing the function from executing the
|
||||||
|
`read` syscall the next times it is called. However, if the client then
|
||||||
|
terminates the connection, the socket file descriptor receives a HUP
|
||||||
|
event, which is not handled, thus the kernel keeps marking the HUP event
|
||||||
|
as occurring. While iterating over the file descriptors that triggered
|
||||||
|
an event, the client file descriptor will keep having the HUP event and
|
||||||
|
the client_work() function is always called with AVAHI_WATCH_HUP but
|
||||||
|
without nothing being done, thus entering an infinite loop.
|
||||||
|
|
||||||
|
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=984938
|
||||||
|
---
|
||||||
|
avahi-daemon/simple-protocol.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/avahi-daemon/simple-protocol.c b/avahi-daemon/simple-protocol.c
|
||||||
|
index 3e0ebb1..6c0274d 100644
|
||||||
|
--- a/avahi-daemon/simple-protocol.c
|
||||||
|
+++ b/avahi-daemon/simple-protocol.c
|
||||||
|
@@ -424,6 +424,11 @@ static void client_work(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AvahiWatchEv
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (events & AVAHI_WATCH_HUP) {
|
||||||
|
+ client_free(c);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
c->server->poll_api->watch_update(
|
||||||
|
watch,
|
||||||
|
(c->outbuf_length > 0 ? AVAHI_WATCH_OUT : 0) |
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
151
avahi-CVE-2021-3502.patch
Normal file
151
avahi-CVE-2021-3502.patch
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
From 9d31939e55280a733d930b15ac9e4dda4497680c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tommi Rantala <tommi.t.rantala@nokia.com>
|
||||||
|
Date: Mon, 8 Feb 2021 11:04:43 +0200
|
||||||
|
Subject: [PATCH] Fix NULL pointer crashes from #175
|
||||||
|
|
||||||
|
avahi-daemon is crashing when running "ping .local".
|
||||||
|
The crash is due to failing assertion from NULL pointer.
|
||||||
|
Add missing NULL pointer checks to fix it.
|
||||||
|
|
||||||
|
Introduced in #175 - merge commit 8f75a045709a780c8cf92a6a21e9d35b593bdecd
|
||||||
|
---
|
||||||
|
avahi-core/browse-dns-server.c | 5 ++++-
|
||||||
|
avahi-core/browse-domain.c | 5 ++++-
|
||||||
|
avahi-core/browse-service-type.c | 3 +++
|
||||||
|
avahi-core/browse-service.c | 3 +++
|
||||||
|
avahi-core/browse.c | 3 +++
|
||||||
|
avahi-core/resolve-address.c | 5 ++++-
|
||||||
|
avahi-core/resolve-host-name.c | 5 ++++-
|
||||||
|
avahi-core/resolve-service.c | 5 ++++-
|
||||||
|
8 files changed, 29 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/avahi-core/browse-dns-server.c b/avahi-core/browse-dns-server.c
|
||||||
|
index 049752e..c2d914f 100644
|
||||||
|
--- a/avahi-core/browse-dns-server.c
|
||||||
|
+++ b/avahi-core/browse-dns-server.c
|
||||||
|
@@ -343,7 +343,10 @@ AvahiSDNSServerBrowser *avahi_s_dns_server_browser_new(
|
||||||
|
AvahiSDNSServerBrowser* b;
|
||||||
|
|
||||||
|
b = avahi_s_dns_server_browser_prepare(server, interface, protocol, domain, type, aprotocol, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_dns_server_browser_start(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
diff --git a/avahi-core/browse-domain.c b/avahi-core/browse-domain.c
|
||||||
|
index f145d56..06fa70c 100644
|
||||||
|
--- a/avahi-core/browse-domain.c
|
||||||
|
+++ b/avahi-core/browse-domain.c
|
||||||
|
@@ -253,7 +253,10 @@ AvahiSDomainBrowser *avahi_s_domain_browser_new(
|
||||||
|
AvahiSDomainBrowser *b;
|
||||||
|
|
||||||
|
b = avahi_s_domain_browser_prepare(server, interface, protocol, domain, type, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_domain_browser_start(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
diff --git a/avahi-core/browse-service-type.c b/avahi-core/browse-service-type.c
|
||||||
|
index fdd22dc..b1fc7af 100644
|
||||||
|
--- a/avahi-core/browse-service-type.c
|
||||||
|
+++ b/avahi-core/browse-service-type.c
|
||||||
|
@@ -171,6 +171,9 @@ AvahiSServiceTypeBrowser *avahi_s_service_type_browser_new(
|
||||||
|
AvahiSServiceTypeBrowser *b;
|
||||||
|
|
||||||
|
b = avahi_s_service_type_browser_prepare(server, interface, protocol, domain, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_service_type_browser_start(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
diff --git a/avahi-core/browse-service.c b/avahi-core/browse-service.c
|
||||||
|
index 5531360..63e0275 100644
|
||||||
|
--- a/avahi-core/browse-service.c
|
||||||
|
+++ b/avahi-core/browse-service.c
|
||||||
|
@@ -184,6 +184,9 @@ AvahiSServiceBrowser *avahi_s_service_browser_new(
|
||||||
|
AvahiSServiceBrowser *b;
|
||||||
|
|
||||||
|
b = avahi_s_service_browser_prepare(server, interface, protocol, service_type, domain, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_service_browser_start(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
diff --git a/avahi-core/browse.c b/avahi-core/browse.c
|
||||||
|
index 2941e57..e8a915e 100644
|
||||||
|
--- a/avahi-core/browse.c
|
||||||
|
+++ b/avahi-core/browse.c
|
||||||
|
@@ -634,6 +634,9 @@ AvahiSRecordBrowser *avahi_s_record_browser_new(
|
||||||
|
AvahiSRecordBrowser *b;
|
||||||
|
|
||||||
|
b = avahi_s_record_browser_prepare(server, interface, protocol, key, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_record_browser_start_query(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
diff --git a/avahi-core/resolve-address.c b/avahi-core/resolve-address.c
|
||||||
|
index ac0b29b..e61dd24 100644
|
||||||
|
--- a/avahi-core/resolve-address.c
|
||||||
|
+++ b/avahi-core/resolve-address.c
|
||||||
|
@@ -286,7 +286,10 @@ AvahiSAddressResolver *avahi_s_address_resolver_new(
|
||||||
|
AvahiSAddressResolver *b;
|
||||||
|
|
||||||
|
b = avahi_s_address_resolver_prepare(server, interface, protocol, address, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_address_resolver_start(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
diff --git a/avahi-core/resolve-host-name.c b/avahi-core/resolve-host-name.c
|
||||||
|
index 808b0e7..4e8e597 100644
|
||||||
|
--- a/avahi-core/resolve-host-name.c
|
||||||
|
+++ b/avahi-core/resolve-host-name.c
|
||||||
|
@@ -318,7 +318,10 @@ AvahiSHostNameResolver *avahi_s_host_name_resolver_new(
|
||||||
|
AvahiSHostNameResolver *b;
|
||||||
|
|
||||||
|
b = avahi_s_host_name_resolver_prepare(server, interface, protocol, host_name, aprotocol, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_host_name_resolver_start(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
diff --git a/avahi-core/resolve-service.c b/avahi-core/resolve-service.c
|
||||||
|
index 66bf3ca..4377176 100644
|
||||||
|
--- a/avahi-core/resolve-service.c
|
||||||
|
+++ b/avahi-core/resolve-service.c
|
||||||
|
@@ -519,7 +519,10 @@ AvahiSServiceResolver *avahi_s_service_resolver_new(
|
||||||
|
AvahiSServiceResolver *b;
|
||||||
|
|
||||||
|
b = avahi_s_service_resolver_prepare(server, interface, protocol, name, type, domain, aprotocol, flags, callback, userdata);
|
||||||
|
+ if (!b)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
avahi_s_service_resolver_start(b);
|
||||||
|
|
||||||
|
return b;
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
--
|
||||||
|
2.32.0
|
||||||
|
|
56
avahi-CVE-2023-1981.patch
Normal file
56
avahi-CVE-2023-1981.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
From a2696da2f2c50ac43b6c4903f72290d5c3fa9f6f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
|
||||||
|
Date: Thu, 17 Nov 2022 01:51:53 +0100
|
||||||
|
Subject: [PATCH] Emit error if requested service is not found
|
||||||
|
|
||||||
|
It currently just crashes instead of replying with error. Check return
|
||||||
|
value and emit error instead of passing NULL pointer to reply.
|
||||||
|
|
||||||
|
Fixes #375
|
||||||
|
---
|
||||||
|
avahi-daemon/dbus-protocol.c | 20 ++++++++++++++------
|
||||||
|
1 file changed, 14 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/avahi-daemon/dbus-protocol.c b/avahi-daemon/dbus-protocol.c
|
||||||
|
index 70d7687..406d0b4 100644
|
||||||
|
--- a/avahi-daemon/dbus-protocol.c
|
||||||
|
+++ b/avahi-daemon/dbus-protocol.c
|
||||||
|
@@ -375,10 +375,14 @@ static DBusHandlerResult dbus_get_alternative_host_name(DBusConnection *c, DBusM
|
||||||
|
}
|
||||||
|
|
||||||
|
t = avahi_alternative_host_name(n);
|
||||||
|
- avahi_dbus_respond_string(c, m, t);
|
||||||
|
- avahi_free(t);
|
||||||
|
+ if (t) {
|
||||||
|
+ avahi_dbus_respond_string(c, m, t);
|
||||||
|
+ avahi_free(t);
|
||||||
|
|
||||||
|
- return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
|
+ return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
|
+ } else {
|
||||||
|
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Hostname not found");
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DBusMessage *m, DBusError *error) {
|
||||||
|
@@ -389,10 +393,14 @@ static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DB
|
||||||
|
}
|
||||||
|
|
||||||
|
t = avahi_alternative_service_name(n);
|
||||||
|
- avahi_dbus_respond_string(c, m, t);
|
||||||
|
- avahi_free(t);
|
||||||
|
+ if (t) {
|
||||||
|
+ avahi_dbus_respond_string(c, m, t);
|
||||||
|
+ avahi_free(t);
|
||||||
|
|
||||||
|
- return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
|
+ return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
|
+ } else {
|
||||||
|
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Service not found");
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static DBusHandlerResult dbus_create_new_entry_group(DBusConnection *c, DBusMessage *m, DBusError *error) {
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
52
avahi-CVE-2023-38470.patch
Normal file
52
avahi-CVE-2023-38470.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
From b6cf29f98adce7355e8c51a6af1e338a5f94e16e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
|
||||||
|
Date: Tue, 11 Apr 2023 15:29:59 +0200
|
||||||
|
Subject: [PATCH] Ensure each label is at least one byte long
|
||||||
|
|
||||||
|
The only allowed exception is single dot, where it should return empty
|
||||||
|
string.
|
||||||
|
|
||||||
|
Fixes #454.
|
||||||
|
---
|
||||||
|
avahi-common/domain-test.c | 14 ++++++++++++++
|
||||||
|
avahi-common/domain.c | 2 +-
|
||||||
|
2 files changed, 15 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/avahi-common/domain-test.c b/avahi-common/domain-test.c
|
||||||
|
index cf763eca6..3acc1c1e4 100644
|
||||||
|
--- a/avahi-common/domain-test.c
|
||||||
|
+++ b/avahi-common/domain-test.c
|
||||||
|
@@ -45,6 +45,20 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
|
||||||
|
printf("%s\n", s = avahi_normalize_name_strdup("fo\\\\o\\..f oo."));
|
||||||
|
avahi_free(s);
|
||||||
|
|
||||||
|
+ printf("%s\n", s = avahi_normalize_name_strdup("."));
|
||||||
|
+ avahi_free(s);
|
||||||
|
+
|
||||||
|
+ s = avahi_normalize_name_strdup(",.=.}.=.?-.}.=.?.?.}.}.?.?.?.z.?.?.}.}."
|
||||||
|
+ "}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.}.}.}"
|
||||||
|
+ ".?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.?.zM.?`"
|
||||||
|
+ "?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}??.}.}.?.?."
|
||||||
|
+ "?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.?`?.}.}.}."
|
||||||
|
+ "??.?.zM.?`?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}?"
|
||||||
|
+ "?.}.}.?.?.?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM."
|
||||||
|
+ "?`?.}.}.}.?.?.?.r.=.=.?.?`.?.?}.}.}.?.?.?.r.=.?.}.=.?.?."
|
||||||
|
+ "}.?.?.?.}.=.?.?.}");
|
||||||
|
+ assert(s == NULL);
|
||||||
|
+
|
||||||
|
printf("%i\n", avahi_domain_equal("\\065aa bbb\\.\\046cc.cc\\\\.dee.fff.", "Aaa BBB\\.\\.cc.cc\\\\.dee.fff"));
|
||||||
|
printf("%i\n", avahi_domain_equal("A", "a"));
|
||||||
|
|
||||||
|
diff --git a/avahi-common/domain.c b/avahi-common/domain.c
|
||||||
|
index 3b1ab6834..e66d2416c 100644
|
||||||
|
--- a/avahi-common/domain.c
|
||||||
|
+++ b/avahi-common/domain.c
|
||||||
|
@@ -201,7 +201,7 @@ char *avahi_normalize_name(const char *s, char *ret_s, size_t size) {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty) {
|
||||||
|
- if (size < 1)
|
||||||
|
+ if (size < 2)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
*(r++) = '.';
|
45
avahi-CVE-2023-38472.patch
Normal file
45
avahi-CVE-2023-38472.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
diff --unified --recursive --text --new-file --color avahi-0.8.old/avahi-client/client-test.c avahi-0.8.new/avahi-client/client-test.c
|
||||||
|
--- avahi-0.8.old/avahi-client/client-test.c 2015-04-01 12:58:14.145727222 +0800
|
||||||
|
+++ avahi-0.8.new/avahi-client/client-test.c 2023-11-30 13:20:12.640085338 +0800
|
||||||
|
@@ -258,6 +258,9 @@
|
||||||
|
printf("%s\n", avahi_strerror(avahi_entry_group_add_service (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "Lathiat's Site", "_http._tcp", NULL, NULL, 80, "foo=bar", NULL)));
|
||||||
|
printf("add_record: %d\n", avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "\5booya", 6));
|
||||||
|
|
||||||
|
+ error = avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "", 0);
|
||||||
|
+ assert(error != AVAHI_OK);
|
||||||
|
+
|
||||||
|
avahi_entry_group_commit (group);
|
||||||
|
|
||||||
|
domain = avahi_domain_browser_new (avahi, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, 0, avahi_domain_browser_callback, (char*) "omghai3u");
|
||||||
|
diff --unified --recursive --text --new-file --color avahi-0.8.old/avahi-core/rr.c avahi-0.8.new/avahi-core/rr.c
|
||||||
|
--- avahi-0.8.old/avahi-core/rr.c 2015-04-01 12:58:14.149727123 +0800
|
||||||
|
+++ avahi-0.8.new/avahi-core/rr.c 2023-11-30 13:20:57.120063792 +0800
|
||||||
|
@@ -426,6 +426,7 @@
|
||||||
|
copy->ref = 1;
|
||||||
|
copy->key = avahi_key_ref(r->key);
|
||||||
|
copy->ttl = r->ttl;
|
||||||
|
+ memset(©->data, 0, sizeof(copy->data));
|
||||||
|
|
||||||
|
switch (r->key->type) {
|
||||||
|
case AVAHI_DNS_TYPE_PTR:
|
||||||
|
@@ -466,7 +467,7 @@
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
- if (!(copy->data.generic.data = avahi_memdup(r->data.generic.data, r->data.generic.size)))
|
||||||
|
+ if (r->data.generic.size && !(copy->data.generic.data = avahi_memdup(r->data.generic.data, r->data.generic.size)))
|
||||||
|
goto fail;
|
||||||
|
copy->data.generic.size = r->data.generic.size;
|
||||||
|
break;
|
||||||
|
diff --unified --recursive --text --new-file --color avahi-0.8.old/avahi-daemon/dbus-entry-group.c avahi-0.8.new/avahi-daemon/dbus-entry-group.c
|
||||||
|
--- avahi-0.8.old/avahi-daemon/dbus-entry-group.c 2015-04-01 12:58:14.153727024 +0800
|
||||||
|
+++ avahi-0.8.new/avahi-daemon/dbus-entry-group.c 2023-11-30 13:20:12.640085338 +0800
|
||||||
|
@@ -340,7 +340,7 @@
|
||||||
|
if (!(r = avahi_record_new_full (name, clazz, type, ttl)))
|
||||||
|
return avahi_dbus_respond_error(c, m, AVAHI_ERR_NO_MEMORY, NULL);
|
||||||
|
|
||||||
|
- if (avahi_rdata_parse (r, rdata, size) < 0) {
|
||||||
|
+ if (!rdata || avahi_rdata_parse (r, rdata, size) < 0) {
|
||||||
|
avahi_record_unref (r);
|
||||||
|
return avahi_dbus_respond_error(c, m, AVAHI_ERR_INVALID_RDATA, NULL);
|
||||||
|
}
|
107
avahi-CVE-2023-38473.patch
Normal file
107
avahi-CVE-2023-38473.patch
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
From b448c9f771bada14ae8de175695a9729f8646797 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Sekletar <msekleta@redhat.com>
|
||||||
|
Date: Wed, 11 Oct 2023 17:45:44 +0200
|
||||||
|
Subject: [PATCH] common: derive alternative host name from its unescaped
|
||||||
|
version
|
||||||
|
|
||||||
|
Normalization of input makes sure we don't have to deal with special
|
||||||
|
cases like unescaped dot at the end of label.
|
||||||
|
|
||||||
|
Fixes #451 #487
|
||||||
|
CVE-2023-38473
|
||||||
|
---
|
||||||
|
avahi-common/alternative-test.c | 3 +++
|
||||||
|
avahi-common/alternative.c | 27 +++++++++++++++++++--------
|
||||||
|
2 files changed, 22 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/avahi-common/alternative-test.c b/avahi-common/alternative-test.c
|
||||||
|
index 9255435..681fc15 100644
|
||||||
|
--- a/avahi-common/alternative-test.c
|
||||||
|
+++ b/avahi-common/alternative-test.c
|
||||||
|
@@ -31,6 +31,9 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
|
||||||
|
const char* const test_strings[] = {
|
||||||
|
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||||
|
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXüüüüüüü",
|
||||||
|
+ ").",
|
||||||
|
+ "\\.",
|
||||||
|
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\\",
|
||||||
|
"gurke",
|
||||||
|
"-",
|
||||||
|
" #",
|
||||||
|
diff --git a/avahi-common/alternative.c b/avahi-common/alternative.c
|
||||||
|
index b3d39f0..a094e6d 100644
|
||||||
|
--- a/avahi-common/alternative.c
|
||||||
|
+++ b/avahi-common/alternative.c
|
||||||
|
@@ -49,15 +49,20 @@ static void drop_incomplete_utf8(char *c) {
|
||||||
|
}
|
||||||
|
|
||||||
|
char *avahi_alternative_host_name(const char *s) {
|
||||||
|
+ char label[AVAHI_LABEL_MAX], alternative[AVAHI_LABEL_MAX*4+1];
|
||||||
|
+ char *alt, *r, *ret;
|
||||||
|
const char *e;
|
||||||
|
- char *r;
|
||||||
|
+ size_t len;
|
||||||
|
|
||||||
|
assert(s);
|
||||||
|
|
||||||
|
if (!avahi_is_valid_host_name(s))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- if ((e = strrchr(s, '-'))) {
|
||||||
|
+ if (!avahi_unescape_label(&s, label, sizeof(label)))
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ if ((e = strrchr(label, '-'))) {
|
||||||
|
const char *p;
|
||||||
|
|
||||||
|
e++;
|
||||||
|
@@ -74,19 +79,18 @@ char *avahi_alternative_host_name(const char *s) {
|
||||||
|
|
||||||
|
if (e) {
|
||||||
|
char *c, *m;
|
||||||
|
- size_t l;
|
||||||
|
int n;
|
||||||
|
|
||||||
|
n = atoi(e)+1;
|
||||||
|
if (!(m = avahi_strdup_printf("%i", n)))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- l = e-s-1;
|
||||||
|
+ len = e-label-1;
|
||||||
|
|
||||||
|
- if (l >= AVAHI_LABEL_MAX-1-strlen(m)-1)
|
||||||
|
- l = AVAHI_LABEL_MAX-1-strlen(m)-1;
|
||||||
|
+ if (len >= AVAHI_LABEL_MAX-1-strlen(m)-1)
|
||||||
|
+ len = AVAHI_LABEL_MAX-1-strlen(m)-1;
|
||||||
|
|
||||||
|
- if (!(c = avahi_strndup(s, l))) {
|
||||||
|
+ if (!(c = avahi_strndup(label, len))) {
|
||||||
|
avahi_free(m);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
@@ -100,7 +104,7 @@ char *avahi_alternative_host_name(const char *s) {
|
||||||
|
} else {
|
||||||
|
char *c;
|
||||||
|
|
||||||
|
- if (!(c = avahi_strndup(s, AVAHI_LABEL_MAX-1-2)))
|
||||||
|
+ if (!(c = avahi_strndup(label, AVAHI_LABEL_MAX-1-2)))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
drop_incomplete_utf8(c);
|
||||||
|
@@ -109,6 +113,13 @@ char *avahi_alternative_host_name(const char *s) {
|
||||||
|
avahi_free(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ alt = alternative;
|
||||||
|
+ len = sizeof(alternative);
|
||||||
|
+ ret = avahi_escape_label(r, strlen(r), &alt, &len);
|
||||||
|
+
|
||||||
|
+ avahi_free(r);
|
||||||
|
+ r = avahi_strdup(ret);
|
||||||
|
+
|
||||||
|
assert(avahi_is_valid_host_name(r));
|
||||||
|
|
||||||
|
return r;
|
||||||
|
--
|
||||||
|
2.42.0
|
||||||
|
|
29
avahi-add-resolv-conf-to-inotify.patch
Normal file
29
avahi-add-resolv-conf-to-inotify.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From a2f1db71e6870ad70dd58bb081741946a59dd5cd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mike Gorse <mgorse@suse.com>
|
||||||
|
Date: Tue, 15 Feb 2022 15:37:47 -0600
|
||||||
|
Subject: [PATCH] Add an inotify watch for /etc/resolv.conf
|
||||||
|
|
||||||
|
This will ensure that avahi is reconfigured when resolv.conf changes.
|
||||||
|
Related to https://github.com/lathiat/avahi/issues/118, but this
|
||||||
|
patch is insufficient to solve the issue upstream, since it doesn't handle
|
||||||
|
a chrooted environment. Currently, SUSE isn't building avahi with chroot
|
||||||
|
support, so this doesn't matter here.
|
||||||
|
---
|
||||||
|
avahi-daemon/main.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c
|
||||||
|
index 346338f..2edac30 100644
|
||||||
|
--- a/avahi-daemon/main.c
|
||||||
|
+++ b/avahi-daemon/main.c
|
||||||
|
@@ -944,6 +944,7 @@ static void add_inotify_watches(void) {
|
||||||
|
|IN_ONLYDIR
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
+ inotify_add_watch(inotify_fd, "/etc/resolv.conf", IN_CLOSE_WRITE|IN_DELETE|IN_DELETE_SELF|IN_MOVED_FROM|IN_MOVED_TO|IN_MOVE_SELF);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
77
avahi-autoipd.README.SUSE
Normal file
77
avahi-autoipd.README.SUSE
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
IPv4LL in SUSE Linux
|
||||||
|
====================
|
||||||
|
|
||||||
|
IPv4LL provides support of peer to peer address assignment from a
|
||||||
|
special link local IP range.
|
||||||
|
|
||||||
|
SUSE Linux contains two implementations of IPv4LL autoip protocol:
|
||||||
|
|
||||||
|
|
||||||
|
avahi-autoipd from avahi-autoipd package from avahi project
|
||||||
|
===========================================================
|
||||||
|
|
||||||
|
This is a daemon, that runs and assign IPv4LL address, either as a
|
||||||
|
fallback or at any time, depending on System/Zeroconf
|
||||||
|
AVAHI_AUTOIPD_FORCE_BIND sysconfig key (disabled by default).
|
||||||
|
|
||||||
|
The daemon runs permanently for each device, monitors the network
|
||||||
|
status, and assigns IPv4LL address when requested.
|
||||||
|
|
||||||
|
See http://avahi.org/wiki/AvahiAutoipd#ModesofOperation for more.
|
||||||
|
|
||||||
|
|
||||||
|
Activate avahi-autoipd implementation
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
- Install avahi-autoip package and check that System/Zeroconf
|
||||||
|
AVAHI_AUTOIPD_FORCE_BIND sysconfig key is "yes" (the default).
|
||||||
|
|
||||||
|
- Set the address settings in the YaST network configuration either to
|
||||||
|
None (to have IPv4LL address only) or DHCP (if you want DHCP together
|
||||||
|
with IPv4LL).
|
||||||
|
|
||||||
|
- Note that NetworkManager uses avahi-autoipd by default.
|
||||||
|
|
||||||
|
|
||||||
|
For AVAHI_AUTOIPD_FORCE_BIND=false:
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
In this mode the daemon assigns IPv4LL address only of DHCP fails.
|
||||||
|
|
||||||
|
Advantage:
|
||||||
|
- All programs work with this setup.
|
||||||
|
|
||||||
|
Disadvantage:
|
||||||
|
- When DHCP assigns address, all existing IPv4LL connections are lost.
|
||||||
|
|
||||||
|
|
||||||
|
For AVAHI_AUTOIPD_FORCE_BIND=true:
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
In this mode the deamon forces binding address from IPv4LL address, even if
|
||||||
|
standard IPv4 address exists.
|
||||||
|
|
||||||
|
Advantage:
|
||||||
|
- You can depend on IPv4LL address always assigned.
|
||||||
|
|
||||||
|
Disadvantage:
|
||||||
|
- Some programs don't work well with labeled IP addresses or interface
|
||||||
|
aliases.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IPv4LL assigned by dhcpcd
|
||||||
|
=========================
|
||||||
|
|
||||||
|
If dhcpcd fails to obtain a lease, it will probe for a valid IPv4LL
|
||||||
|
address. Once obtained it will probe every 10 seconds for a DHCP server.
|
||||||
|
|
||||||
|
|
||||||
|
Activate dhcpcd implementation
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This implementation is not supported in SUSE yet. Enabling this
|
||||||
|
implementation would require several manual changes in the
|
||||||
|
/sbin/ifup-dhcp script (removal of -L argument, and skipping of calls to
|
||||||
|
${SCRIPTNAME}-autoip in /sbin/ifup (e. g. by not setting Zeroconf in the
|
||||||
|
YaST network configuration).
|
27
avahi-autoipd.sysconfig
Normal file
27
avahi-autoipd.sysconfig
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
## Path: System/Zeroconf
|
||||||
|
## Description: Zeroconf (Bonjour, Rendezvous) options
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# Enable or disable avahi implementation of IPv4LL. If you select
|
||||||
|
# "yes", then it ignores AUTOIP keyword in the YaST network
|
||||||
|
# configuration. You should disable autoip implementation by disabling
|
||||||
|
# AUTOIP in the YaST network configuration of all devices.
|
||||||
|
#
|
||||||
|
# Note, that enabling it causes to start unconditionally on any
|
||||||
|
# interface and will break bridges,vlan,bond, ...
|
||||||
|
# For more see @docdir@/avahi-autoipd/README.SUSE.
|
||||||
|
#
|
||||||
|
AVAHI_AUTOIPD_ENABLE="no"
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# Force binding address from IPv4LL (link local) address, even if
|
||||||
|
# standard IPv4 address exists. If you select "yes", alias interface
|
||||||
|
# will be created. It may break some naive programs. If you select
|
||||||
|
# "no", IPv4LL will be usable only if no routable address is configured.
|
||||||
|
# See http://avahi.org/wiki/AvahiAutoipd#ModesofOperation for more.
|
||||||
|
#
|
||||||
|
AVAHI_AUTOIPD_FORCE_BIND="no"
|
2
avahi-autoipd.sysusers
Normal file
2
avahi-autoipd.sysusers
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#Type Name ID GECOS Home directory Shell
|
||||||
|
u avahi-autoipd - "User for Avahi IPv4LL" /var/lib/avahi-autoipd -
|
33
avahi-desktop.patch
Normal file
33
avahi-desktop.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
Index: avahi-0.6.31/avahi-ui/bssh.desktop.in.in
|
||||||
|
===================================================================
|
||||||
|
--- avahi-0.6.31.orig/avahi-ui/bssh.desktop.in.in
|
||||||
|
+++ avahi-0.6.31/avahi-ui/bssh.desktop.in.in
|
||||||
|
@@ -6,5 +6,5 @@ Exec=@bindir@/bssh
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Icon=network-wired
|
||||||
|
-Categories=GNOME;Network;
|
||||||
|
+Categories=GTK;Network;RemoteAccess;
|
||||||
|
StartupNotify=false
|
||||||
|
Index: avahi-0.6.31/avahi-ui/bvnc.desktop.in.in
|
||||||
|
===================================================================
|
||||||
|
--- avahi-0.6.31.orig/avahi-ui/bvnc.desktop.in.in
|
||||||
|
+++ avahi-0.6.31/avahi-ui/bvnc.desktop.in.in
|
||||||
|
@@ -6,5 +6,5 @@ Exec=@bindir@/bvnc
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Icon=network-wired
|
||||||
|
-Categories=GNOME;Network;
|
||||||
|
+Categories=GTK;Network;RemoteAccess;
|
||||||
|
StartupNotify=false
|
||||||
|
Index: avahi-0.6.31/avahi-python/avahi-discover/avahi-discover.desktop.in.in
|
||||||
|
===================================================================
|
||||||
|
--- avahi-0.6.31.orig/avahi-python/avahi-discover/avahi-discover.desktop.in.in
|
||||||
|
+++ avahi-0.6.31/avahi-python/avahi-discover/avahi-discover.desktop.in.in
|
||||||
|
@@ -6,5 +6,5 @@ Exec=@bindir@/avahi-discover
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Icon=network-wired
|
||||||
|
-Categories=GNOME;System;
|
||||||
|
+Categories=GTK;Network;Monitor;
|
||||||
|
StartupNotify=false
|
80
avahi-gacdir.patch
Normal file
80
avahi-gacdir.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
Index: avahi-sharp.pc.in
|
||||||
|
===================================================================
|
||||||
|
--- a/avahi-sharp.pc.in.orig
|
||||||
|
+++ b/avahi-sharp.pc.in
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
prefix=@prefix@
|
||||||
|
exec_prefix=@prefix@
|
||||||
|
-libdir=@libdir@
|
||||||
|
+libdir=@prefix@/lib
|
||||||
|
|
||||||
|
Name: avahi-sharp
|
||||||
|
Description: Mono bindings for the Avahi mDNS/DNS-SD stack
|
||||||
|
Index: avahi-sharp/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- a/avahi-sharp/Makefile.am.orig
|
||||||
|
+++ b/avahi-sharp/Makefile.am
|
||||||
|
@@ -73,10 +73,10 @@ monodoc_DATA = avahi-sharp-docs.zip avah
|
||||||
|
endif
|
||||||
|
|
||||||
|
install-data-hook: $(ASSEMBLY)
|
||||||
|
- $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /i $(ASSEMBLY) /package avahi-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+ $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /i $(ASSEMBLY) /package avahi-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
uninstall-hook: $(ASSEMBLY)
|
||||||
|
- $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /u avahi-sharp /package avahi-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+ $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /u avahi-sharp /package avahi-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
Index: avahi-sharp/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- a/avahi-sharp/Makefile.in.orig
|
||||||
|
+++ b/avahi-sharp/Makefile.in
|
||||||
|
@@ -611,10 +611,10 @@ $(ASSEMBLY).config: $(ASSEMBLY).config.i
|
||||||
|
@HAVE_DBUS_TRUE@@HAVE_MONODOC_TRUE@@HAVE_MONO_TRUE@ $(AM_V_GEN)$(MDASSEMBLER) --out avahi-sharp-docs --ecma $(srcdir)/en
|
||||||
|
|
||||||
|
@HAVE_DBUS_TRUE@@HAVE_MONO_TRUE@install-data-hook: $(ASSEMBLY)
|
||||||
|
-@HAVE_DBUS_TRUE@@HAVE_MONO_TRUE@ $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /i $(ASSEMBLY) /package avahi-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+@HAVE_DBUS_TRUE@@HAVE_MONO_TRUE@ $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /i $(ASSEMBLY) /package avahi-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
@HAVE_DBUS_TRUE@@HAVE_MONO_TRUE@uninstall-hook: $(ASSEMBLY)
|
||||||
|
-@HAVE_DBUS_TRUE@@HAVE_MONO_TRUE@ $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /u avahi-sharp /package avahi-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+@HAVE_DBUS_TRUE@@HAVE_MONO_TRUE@ $(AM_V_GEN)MONO_SHARED_DIR=. $(GACUTIL) /u avahi-sharp /package avahi-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
Index: avahi-ui-sharp/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- a/avahi-ui-sharp/Makefile.am.orig
|
||||||
|
+++ b/avahi-ui-sharp/Makefile.am
|
||||||
|
@@ -60,10 +60,10 @@ monodoc_DATA = avahi-ui-sharp-docs.zip a
|
||||||
|
endif
|
||||||
|
|
||||||
|
install-data-hook: $(ASSEMBLY)
|
||||||
|
- $(GACUTIL) /i $(ASSEMBLY) /package avahi-ui-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+ $(GACUTIL) /i $(ASSEMBLY) /package avahi-ui-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
uninstall-hook: $(ASSEMBLY)
|
||||||
|
- $(GACUTIL) /u avahi-ui-sharp /package avahi-ui-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+ $(GACUTIL) /u avahi-ui-sharp /package avahi-ui-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
Index: avahi-ui-sharp/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- a/avahi-ui-sharp/Makefile.in.orig
|
||||||
|
+++ b/avahi-ui-sharp/Makefile.in
|
||||||
|
@@ -600,10 +600,10 @@ bssh.exe: $(srcdir)/bssh.cs $(ASSEMBLY)
|
||||||
|
@HAVE_DBUS_TRUE@@HAVE_GTK_TRUE@@HAVE_MONODOC_TRUE@@HAVE_MONO_TRUE@ $(AM_V_GEN)$(MDASSEMBLER) --out avahi-ui-sharp-docs --ecma $(srcdir)/en
|
||||||
|
|
||||||
|
@HAVE_DBUS_TRUE@@HAVE_GTK_TRUE@@HAVE_MONO_TRUE@install-data-hook: $(ASSEMBLY)
|
||||||
|
-@HAVE_DBUS_TRUE@@HAVE_GTK_TRUE@@HAVE_MONO_TRUE@ $(GACUTIL) /i $(ASSEMBLY) /package avahi-ui-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+@HAVE_DBUS_TRUE@@HAVE_GTK_TRUE@@HAVE_MONO_TRUE@ $(GACUTIL) /i $(ASSEMBLY) /package avahi-ui-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
@HAVE_DBUS_TRUE@@HAVE_GTK_TRUE@@HAVE_MONO_TRUE@uninstall-hook: $(ASSEMBLY)
|
||||||
|
-@HAVE_DBUS_TRUE@@HAVE_GTK_TRUE@@HAVE_MONO_TRUE@ $(GACUTIL) /u avahi-ui-sharp /package avahi-ui-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
|
||||||
|
+@HAVE_DBUS_TRUE@@HAVE_GTK_TRUE@@HAVE_MONO_TRUE@ $(GACUTIL) /u avahi-ui-sharp /package avahi-ui-sharp /gacdir $(prefix)/lib /root $(DESTDIR)$(prefix)/lib
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
420
avahi-glib-gettext.m4
Normal file
420
avahi-glib-gettext.m4
Normal file
@ -0,0 +1,420 @@
|
|||||||
|
# Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||||
|
# Copyright (C) 2001-2003,2004 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software, distributed under the terms of the GNU
|
||||||
|
# General Public License. As a special exception to the GNU General
|
||||||
|
# Public License, this file may be distributed as part of a program
|
||||||
|
# that contains a configuration script generated by Autoconf, under
|
||||||
|
# the same distribution terms as the rest of that program.
|
||||||
|
#
|
||||||
|
# This file can be copied and used freely without restrictions. It can
|
||||||
|
# be used in projects which are not available under the GNU Public License
|
||||||
|
# but which still want to provide support for the GNU gettext functionality.
|
||||||
|
#
|
||||||
|
# Macro to add for using GNU gettext.
|
||||||
|
# Ulrich Drepper <drepper@cygnus.com>, 1995, 1996
|
||||||
|
#
|
||||||
|
# Modified to never use included libintl.
|
||||||
|
# Owen Taylor <otaylor@redhat.com>, 12/15/1998
|
||||||
|
#
|
||||||
|
# Major rework to remove unused code
|
||||||
|
# Owen Taylor <otaylor@redhat.com>, 12/11/2002
|
||||||
|
#
|
||||||
|
# Added better handling of ALL_LINGUAS from GNU gettext version
|
||||||
|
# written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
|
||||||
|
#
|
||||||
|
# Modified to require ngettext
|
||||||
|
# Matthias Clasen <mclasen@redhat.com> 08/06/2004
|
||||||
|
#
|
||||||
|
# We need this here as well, since someone might use autoconf-2.5x
|
||||||
|
# to configure GLib then an older version to configure a package
|
||||||
|
# using AM_GLIB_GNU_GETTEXT
|
||||||
|
AC_PREREQ(2.53)
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl We go to great lengths to make sure that aclocal won't
|
||||||
|
dnl try to pull in the installed version of these macros
|
||||||
|
dnl when running aclocal in the glib directory.
|
||||||
|
dnl
|
||||||
|
m4_copy([AC_DEFUN],[glib_DEFUN])
|
||||||
|
m4_copy([AC_REQUIRE],[glib_REQUIRE])
|
||||||
|
dnl
|
||||||
|
dnl At the end, if we're not within glib, we'll define the public
|
||||||
|
dnl definitions in terms of our private definitions.
|
||||||
|
dnl
|
||||||
|
|
||||||
|
# GLIB_LC_MESSAGES
|
||||||
|
#--------------------
|
||||||
|
glib_DEFUN([GLIB_LC_MESSAGES],
|
||||||
|
[AC_CHECK_HEADERS([locale.h])
|
||||||
|
if test $ac_cv_header_locale_h = yes; then
|
||||||
|
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
|
||||||
|
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
|
||||||
|
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
|
||||||
|
if test $am_cv_val_LC_MESSAGES = yes; then
|
||||||
|
AC_DEFINE(HAVE_LC_MESSAGES, 1,
|
||||||
|
[Define if your <locale.h> file defines LC_MESSAGES.])
|
||||||
|
fi
|
||||||
|
fi])
|
||||||
|
|
||||||
|
# GLIB_PATH_PROG_WITH_TEST
|
||||||
|
#----------------------------
|
||||||
|
dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
||||||
|
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
||||||
|
glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
|
||||||
|
[# Extract the first word of "$2", so it can be a program name with args.
|
||||||
|
set dummy $2; ac_word=[$]2
|
||||||
|
AC_MSG_CHECKING([for $ac_word])
|
||||||
|
AC_CACHE_VAL(ac_cv_path_$1,
|
||||||
|
[case "[$]$1" in
|
||||||
|
/*)
|
||||||
|
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
||||||
|
for ac_dir in ifelse([$5], , $PATH, [$5]); do
|
||||||
|
test -z "$ac_dir" && ac_dir=.
|
||||||
|
if test -f $ac_dir/$ac_word; then
|
||||||
|
if [$3]; then
|
||||||
|
ac_cv_path_$1="$ac_dir/$ac_word"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ac_save_ifs"
|
||||||
|
dnl If no 4th arg is given, leave the cache variable unset,
|
||||||
|
dnl so AC_PATH_PROGS will keep looking.
|
||||||
|
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
|
||||||
|
])dnl
|
||||||
|
;;
|
||||||
|
esac])dnl
|
||||||
|
$1="$ac_cv_path_$1"
|
||||||
|
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
|
||||||
|
AC_MSG_RESULT([$]$1)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
AC_SUBST($1)dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
# GLIB_WITH_NLS
|
||||||
|
#-----------------
|
||||||
|
glib_DEFUN([GLIB_WITH_NLS],
|
||||||
|
dnl NLS is obligatory
|
||||||
|
[USE_NLS=yes
|
||||||
|
AC_SUBST(USE_NLS)
|
||||||
|
|
||||||
|
gt_cv_have_gettext=no
|
||||||
|
|
||||||
|
CATOBJEXT=NONE
|
||||||
|
XGETTEXT=:
|
||||||
|
INTLLIBS=
|
||||||
|
|
||||||
|
AC_CHECK_HEADER(libintl.h,
|
||||||
|
[gt_cv_func_dgettext_libintl="no"
|
||||||
|
libintl_extra_libs=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# First check in libc
|
||||||
|
#
|
||||||
|
AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
|
||||||
|
[AC_TRY_LINK([
|
||||||
|
#include <libintl.h>
|
||||||
|
],
|
||||||
|
[return !ngettext ("","", 1)],
|
||||||
|
gt_cv_func_ngettext_libc=yes,
|
||||||
|
gt_cv_func_ngettext_libc=no)
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
|
||||||
|
AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
|
||||||
|
[AC_TRY_LINK([
|
||||||
|
#include <libintl.h>
|
||||||
|
],
|
||||||
|
[return !dgettext ("","")],
|
||||||
|
gt_cv_func_dgettext_libc=yes,
|
||||||
|
gt_cv_func_dgettext_libc=no)
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
|
||||||
|
AC_CHECK_FUNCS(bind_textdomain_codeset)
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# If we don't have everything we want, check in libintl
|
||||||
|
#
|
||||||
|
if test "$gt_cv_func_dgettext_libc" != "yes" \
|
||||||
|
|| test "$gt_cv_func_ngettext_libc" != "yes" \
|
||||||
|
|| test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
|
||||||
|
|
||||||
|
AC_CHECK_LIB(intl, bindtextdomain,
|
||||||
|
[AC_CHECK_LIB(intl, ngettext,
|
||||||
|
[AC_CHECK_LIB(intl, dgettext,
|
||||||
|
gt_cv_func_dgettext_libintl=yes)])])
|
||||||
|
|
||||||
|
if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
|
||||||
|
AC_MSG_CHECKING([if -liconv is needed to use gettext])
|
||||||
|
AC_MSG_RESULT([])
|
||||||
|
AC_CHECK_LIB(intl, ngettext,
|
||||||
|
[AC_CHECK_LIB(intl, dcgettext,
|
||||||
|
[gt_cv_func_dgettext_libintl=yes
|
||||||
|
libintl_extra_libs=-liconv],
|
||||||
|
:,-liconv)],
|
||||||
|
:,-liconv)
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# If we found libintl, then check in it for bind_textdomain_codeset();
|
||||||
|
# we'll prefer libc if neither have bind_textdomain_codeset(),
|
||||||
|
# and both have dgettext and ngettext
|
||||||
|
#
|
||||||
|
if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
|
||||||
|
glib_save_LIBS="$LIBS"
|
||||||
|
LIBS="$LIBS -lintl $libintl_extra_libs"
|
||||||
|
unset ac_cv_func_bind_textdomain_codeset
|
||||||
|
AC_CHECK_FUNCS(bind_textdomain_codeset)
|
||||||
|
LIBS="$glib_save_LIBS"
|
||||||
|
|
||||||
|
if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
|
||||||
|
gt_cv_func_dgettext_libc=no
|
||||||
|
else
|
||||||
|
if test "$gt_cv_func_dgettext_libc" = "yes" \
|
||||||
|
&& test "$gt_cv_func_ngettext_libc" = "yes"; then
|
||||||
|
gt_cv_func_dgettext_libintl=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$gt_cv_func_dgettext_libc" = "yes" \
|
||||||
|
|| test "$gt_cv_func_dgettext_libintl" = "yes"; then
|
||||||
|
gt_cv_have_gettext=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$gt_cv_func_dgettext_libintl" = "yes"; then
|
||||||
|
INTLLIBS="-lintl $libintl_extra_libs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$gt_cv_have_gettext" = "yes"; then
|
||||||
|
AC_DEFINE(HAVE_GETTEXT,1,
|
||||||
|
[Define if the GNU gettext() function is already present or preinstalled.])
|
||||||
|
GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
|
||||||
|
if test "$MSGFMT" != "no"; then
|
||||||
|
glib_save_LIBS="$LIBS"
|
||||||
|
LIBS="$LIBS $INTLLIBS"
|
||||||
|
AC_CHECK_FUNCS(dcgettext)
|
||||||
|
MSGFMT_OPTS=
|
||||||
|
AC_MSG_CHECKING([if msgfmt accepts -c])
|
||||||
|
GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Project-Id-Version: test 1.0\n"
|
||||||
|
"PO-Revision-Date: 2007-02-15 12:01+0100\n"
|
||||||
|
"Last-Translator: test <foo@bar.xx>\n"
|
||||||
|
"Language-Team: C <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
|
||||||
|
AC_SUBST(MSGFMT_OPTS)
|
||||||
|
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||||
|
GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||||
|
AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
|
||||||
|
return _nl_msg_cat_cntr],
|
||||||
|
[CATOBJEXT=.gmo
|
||||||
|
DATADIRNAME=share],
|
||||||
|
[case $host in
|
||||||
|
*-*-solaris*)
|
||||||
|
dnl On Solaris, if bind_textdomain_codeset is in libc,
|
||||||
|
dnl GNU format message catalog is always supported,
|
||||||
|
dnl since both are added to the libc all together.
|
||||||
|
dnl Hence, we'd like to go with DATADIRNAME=share and
|
||||||
|
dnl and CATOBJEXT=.gmo in this case.
|
||||||
|
AC_CHECK_FUNC(bind_textdomain_codeset,
|
||||||
|
[CATOBJEXT=.gmo
|
||||||
|
DATADIRNAME=share],
|
||||||
|
[CATOBJEXT=.mo
|
||||||
|
DATADIRNAME=lib])
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
CATOBJEXT=.mo
|
||||||
|
DATADIRNAME=lib
|
||||||
|
;;
|
||||||
|
esac])
|
||||||
|
LIBS="$glib_save_LIBS"
|
||||||
|
INSTOBJEXT=.mo
|
||||||
|
else
|
||||||
|
gt_cv_have_gettext=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "$gt_cv_have_gettext" = "yes" ; then
|
||||||
|
AC_DEFINE(ENABLE_NLS, 1,
|
||||||
|
[always defined to indicate that i18n is enabled])
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Test whether we really found GNU xgettext.
|
||||||
|
if test "$XGETTEXT" != ":"; then
|
||||||
|
dnl If it is not GNU xgettext we define it as : so that the
|
||||||
|
dnl Makefiles still can work.
|
||||||
|
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
|
||||||
|
: ;
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(
|
||||||
|
[found xgettext program is not GNU xgettext; ignore it])
|
||||||
|
XGETTEXT=":"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We need to process the po/ directory.
|
||||||
|
POSUB=po
|
||||||
|
|
||||||
|
AC_OUTPUT_COMMANDS(
|
||||||
|
[case "$CONFIG_FILES" in *po/Makefile.in*)
|
||||||
|
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
|
||||||
|
esac])
|
||||||
|
|
||||||
|
dnl These rules are solely for the distribution goal. While doing this
|
||||||
|
dnl we only have to keep exactly one list of the available catalogs
|
||||||
|
dnl in configure.in.
|
||||||
|
for lang in $ALL_LINGUAS; do
|
||||||
|
GMOFILES="$GMOFILES $lang.gmo"
|
||||||
|
POFILES="$POFILES $lang.po"
|
||||||
|
done
|
||||||
|
|
||||||
|
dnl Make all variables we use known to autoconf.
|
||||||
|
AC_SUBST(CATALOGS)
|
||||||
|
AC_SUBST(CATOBJEXT)
|
||||||
|
AC_SUBST(DATADIRNAME)
|
||||||
|
AC_SUBST(GMOFILES)
|
||||||
|
AC_SUBST(INSTOBJEXT)
|
||||||
|
AC_SUBST(INTLLIBS)
|
||||||
|
AC_SUBST(PO_IN_DATADIR_TRUE)
|
||||||
|
AC_SUBST(PO_IN_DATADIR_FALSE)
|
||||||
|
AC_SUBST(POFILES)
|
||||||
|
AC_SUBST(POSUB)
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_GLIB_GNU_GETTEXT
|
||||||
|
# -------------------
|
||||||
|
# Do checks necessary for use of gettext. If a suitable implementation
|
||||||
|
# of gettext is found in either in libintl or in the C library,
|
||||||
|
# it will set INTLLIBS to the libraries needed for use of gettext
|
||||||
|
# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
|
||||||
|
# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
|
||||||
|
# on various variables needed by the Makefile.in.in installed by
|
||||||
|
# glib-gettextize.
|
||||||
|
dnl
|
||||||
|
glib_DEFUN([GLIB_GNU_GETTEXT],
|
||||||
|
[AC_REQUIRE([AC_PROG_CC])dnl
|
||||||
|
AC_REQUIRE([AC_HEADER_STDC])dnl
|
||||||
|
|
||||||
|
GLIB_LC_MESSAGES
|
||||||
|
GLIB_WITH_NLS
|
||||||
|
|
||||||
|
if test "$gt_cv_have_gettext" = "yes"; then
|
||||||
|
if test "x$ALL_LINGUAS" = "x"; then
|
||||||
|
LINGUAS=
|
||||||
|
else
|
||||||
|
AC_MSG_CHECKING(for catalogs to be installed)
|
||||||
|
NEW_LINGUAS=
|
||||||
|
for presentlang in $ALL_LINGUAS; do
|
||||||
|
useit=no
|
||||||
|
if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
|
||||||
|
desiredlanguages="$LINGUAS"
|
||||||
|
else
|
||||||
|
desiredlanguages="$ALL_LINGUAS"
|
||||||
|
fi
|
||||||
|
for desiredlang in $desiredlanguages; do
|
||||||
|
# Use the presentlang catalog if desiredlang is
|
||||||
|
# a. equal to presentlang, or
|
||||||
|
# b. a variant of presentlang (because in this case,
|
||||||
|
# presentlang can be used as a fallback for messages
|
||||||
|
# which are not translated in the desiredlang catalog).
|
||||||
|
case "$desiredlang" in
|
||||||
|
"$presentlang"*) useit=yes;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
if test $useit = yes; then
|
||||||
|
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
LINGUAS=$NEW_LINGUAS
|
||||||
|
AC_MSG_RESULT($LINGUAS)
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Construct list of names of catalog files to be constructed.
|
||||||
|
if test -n "$LINGUAS"; then
|
||||||
|
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Generate list of files to be processed by xgettext which will
|
||||||
|
dnl be included in po/Makefile.
|
||||||
|
test -d po || mkdir po
|
||||||
|
if test "x$srcdir" != "x."; then
|
||||||
|
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
|
||||||
|
posrcprefix="$srcdir/"
|
||||||
|
else
|
||||||
|
posrcprefix="../$srcdir/"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
posrcprefix="../"
|
||||||
|
fi
|
||||||
|
rm -f po/POTFILES
|
||||||
|
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
|
||||||
|
< $srcdir/po/POTFILES.in > po/POTFILES
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
|
||||||
|
# -------------------------------
|
||||||
|
# Define VARIABLE to the location where catalog files will
|
||||||
|
# be installed by po/Makefile.
|
||||||
|
glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
|
||||||
|
[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
|
||||||
|
glib_save_prefix="$prefix"
|
||||||
|
glib_save_exec_prefix="$exec_prefix"
|
||||||
|
glib_save_datarootdir="$datarootdir"
|
||||||
|
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||||
|
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
|
||||||
|
datarootdir=`eval echo "${datarootdir}"`
|
||||||
|
if test "x$CATOBJEXT" = "x.mo" ; then
|
||||||
|
localedir=`eval echo "${libdir}/locale"`
|
||||||
|
else
|
||||||
|
localedir=`eval echo "${datadir}/locale"`
|
||||||
|
fi
|
||||||
|
prefix="$glib_save_prefix"
|
||||||
|
exec_prefix="$glib_save_exec_prefix"
|
||||||
|
datarootdir="$glib_save_datarootdir"
|
||||||
|
AC_DEFINE_UNQUOTED($1, "$localedir",
|
||||||
|
[Define the location where the catalogs will be installed])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Now the definitions that aclocal will find
|
||||||
|
dnl
|
||||||
|
ifdef(glib_configure_in,[],[
|
||||||
|
AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
|
||||||
|
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
|
||||||
|
])dnl
|
||||||
|
|
||||||
|
# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
|
||||||
|
#
|
||||||
|
# Create a temporary file with TEST-FILE as its contents and pass the
|
||||||
|
# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with
|
||||||
|
# 0 and perform ACTION-IF-FAIL for any other exit status.
|
||||||
|
AC_DEFUN([GLIB_RUN_PROG],
|
||||||
|
[cat >conftest.foo <<_ACEOF
|
||||||
|
$2
|
||||||
|
_ACEOF
|
||||||
|
if AC_RUN_LOG([$1 conftest.foo]); then
|
||||||
|
m4_ifval([$3], [$3], [:])
|
||||||
|
m4_ifvaln([$4], [else $4])dnl
|
||||||
|
echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD
|
||||||
|
sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
|
||||||
|
fi])
|
||||||
|
|
1
avahi-rpmlintrc
Normal file
1
avahi-rpmlintrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
addFilter("shlib-policy-name-error SONAME: libdns_sd.so.1");
|
1651
avahi.changes
Normal file
1651
avahi.changes
Normal file
File diff suppressed because it is too large
Load Diff
927
avahi.spec
Normal file
927
avahi.spec
Normal file
@ -0,0 +1,927 @@
|
|||||||
|
#
|
||||||
|
# spec file for package avahi
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define _name avahi
|
||||||
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
|
||||||
|
%if "%{flavor}" == "qt5"
|
||||||
|
%global psuffix -qt5
|
||||||
|
%global build_qt5 1
|
||||||
|
%global build_glib2 0
|
||||||
|
%global build_core 0
|
||||||
|
%else
|
||||||
|
%if "%{flavor}" == "glib2"
|
||||||
|
%global psuffix -glib2
|
||||||
|
# NOTE: build_glib2 also controls build of gobject, gtk3 and pygobject code.
|
||||||
|
%global build_qt5 0
|
||||||
|
%global build_glib2 1
|
||||||
|
%global build_core 0
|
||||||
|
%else
|
||||||
|
%global psuffix %{nil}
|
||||||
|
%global build_qt5 0
|
||||||
|
%global build_glib2 0
|
||||||
|
%global build_core 1
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%define avahi_client_sover 3
|
||||||
|
%define avahi_common_sover 3
|
||||||
|
%define avahi_core_sover 7
|
||||||
|
%define avahi_libevent_sover 1
|
||||||
|
%define avahi_libhowl_sover 0
|
||||||
|
%define avahi_ui_sover 0
|
||||||
|
%define avahi_glib_sover 1
|
||||||
|
%define avahi_gobject_sover 0
|
||||||
|
%define avahi_gtk3_sover 0
|
||||||
|
%define avahi_qt5_sover 1
|
||||||
|
%if %{build_glib2}
|
||||||
|
%define debug_package_requires libavahi-ui%{avahi_ui_sover} = %{version}-%{release}
|
||||||
|
%endif
|
||||||
|
%{?!python_module:%define python_module() python3-%{**}}
|
||||||
|
%define skip_python2 1
|
||||||
|
%define oldpython python
|
||||||
|
Name: avahi%{psuffix}
|
||||||
|
Version: 0.8
|
||||||
|
Release: 0
|
||||||
|
Summary: D-Bus Service for Zeroconf and Bonjour
|
||||||
|
License: LGPL-2.1-or-later
|
||||||
|
Group: System/Daemons
|
||||||
|
URL: https://www.avahi.org/
|
||||||
|
Source: https://avahi.org/download/%{_name}-%{version}.tar.gz
|
||||||
|
# Copy of glib-2.0.m4 from glib2-devel to not depend on glib2-devel.
|
||||||
|
Source4: avahi-glib-gettext.m4
|
||||||
|
Source5: avahi.sysconfig
|
||||||
|
Source6: avahi-autoipd.sysconfig
|
||||||
|
Source9: avahi-autoipd.README.SUSE
|
||||||
|
Source13: avahi.sysusers
|
||||||
|
Source14: avahi-autoipd.sysusers
|
||||||
|
# File missing from 0.8 tarball
|
||||||
|
Source12: https://raw.githubusercontent.com/lathiat/avahi/master/service-type-database/build-db
|
||||||
|
Source100: attributes
|
||||||
|
Source101: update_spec.pl
|
||||||
|
Source102: baselibs.conf
|
||||||
|
Source103: avahi-rpmlintrc
|
||||||
|
# PATCH-FIX-OPENSUSE avahi-gacdir.patch -- Mono libs are in $prefix/lib on suse
|
||||||
|
Patch0: avahi-gacdir.patch
|
||||||
|
# PATCH-FIX-UPSTREAM avahi-desktop.patch bnc254654 Avahi#365 -- sbrabec@suse.cz
|
||||||
|
Patch1: avahi-desktop.patch
|
||||||
|
# PATCH-FIX-OPENSUSE avahi-add-resolv-conf-to-inotify.patch bsc#982317 boo#1194561 mgorse@suse.com -- reconfigure when resolv.conf changes.
|
||||||
|
Patch19: avahi-add-resolv-conf-to-inotify.patch
|
||||||
|
# PATCH-FIX-UPSTREAM add-IT_PROG_INTLTOOL.patch alarrosa@suse.com -- add IT_PROG_INTLTOOL so intltool works
|
||||||
|
Patch20: add-IT_PROG_INTLTOOL.patch
|
||||||
|
# PATCH-FIX-UPSTREAM avahi-CVE-2021-3468.patch boo#1184521 mgorse@suse.com -- avoid infinite loop by handling HUP event in client_work.
|
||||||
|
Patch21: avahi-CVE-2021-3468.patch
|
||||||
|
# PATCH-FIX-UPSTREAM avahi-CVE-2021-3502.patch boo#1184846 mgorse@suse.com -- fix NULL pointer crashes.
|
||||||
|
Patch22: avahi-CVE-2021-3502.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 0001-man-fix-reference-to-avahi-autoipd.action-8-in-avahi.patch mgorse@suse.com -- fix a manpage reference.
|
||||||
|
Patch23: 0001-man-fix-reference-to-avahi-autoipd.action-8-in-avahi.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 0005-avahi-dnsconfd.service-Drop-Also-avahi-daemon.socket.patch mgorse@suse.com -- disabling avahi-dnsconfd should not also disable avahi-daemon.socket.
|
||||||
|
Patch24: 0005-avahi-dnsconfd.service-Drop-Also-avahi-daemon.socket.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 0006-man-add-missing-bshell.1-symlink.patch mgorse@suse.com -- add manpage symlink.
|
||||||
|
Patch25: 0006-man-add-missing-bshell.1-symlink.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 0007-Ship-avahi-discover-1-bssh-1-and-bvnc-1-also-for-GTK.patch mgorse@suse.com -- ship some manpages that were missing when gtk 2 is disabled.
|
||||||
|
Patch26: 0007-Ship-avahi-discover-1-bssh-1-and-bvnc-1-also-for-GTK.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 0009-fix-bytestring-decoding-for-proper-display.patch mgorse@suse.com -- fix bytestring decoding for proper display.
|
||||||
|
Patch27: 0009-fix-bytestring-decoding-for-proper-display.patch
|
||||||
|
Patch28: harden_avahi-daemon.service.patch
|
||||||
|
Patch29: harden_avahi-dnsconfd.service.patch
|
||||||
|
# PATCH-FIX-UPSTREAM avahi-CVE-2023-1981.patch boo#1210328 mgorse@suse.com -- emit error if requested service is not found.
|
||||||
|
Patch30: avahi-CVE-2023-1981.patch
|
||||||
|
# PATCH-FIX-UPSTREAM avahi-CVE-2023-38473.patch bsc#1216419 xwang@suse.com -- derive alternative host name from its unescaped version
|
||||||
|
Patch31: avahi-CVE-2023-38473.patch
|
||||||
|
# PATCH-FIX-UPSTREAM avahi-CVE-2023-38470.patch bsc#1215947 alynx.zhou@suse.com -- Ensure each label is at least one byte long
|
||||||
|
Patch32: avahi-CVE-2023-38470.patch
|
||||||
|
# PATCH-FIX-UPSTREAM avahi-CVE-2023-38472.patch bsc#1216853 alynx.zhou@suse.com -- Fix reachable assertion in avahi_rdata_parse
|
||||||
|
Patch33: avahi-CVE-2023-38472.patch
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: gdbm-devel
|
||||||
|
BuildRequires: intltool
|
||||||
|
BuildRequires: libdaemon-devel
|
||||||
|
BuildRequires: libexpat-devel
|
||||||
|
BuildRequires: sysuser-tools
|
||||||
|
# libtool is needed to build all variants: bootstrap is unconditional in the build section
|
||||||
|
BuildRequires: libtool
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: strip-nondeterminism
|
||||||
|
BuildRequires: xmltoman
|
||||||
|
%if %{build_core}
|
||||||
|
BuildRequires: dbus-1-devel
|
||||||
|
BuildRequires: doxygen
|
||||||
|
BuildRequires: graphviz
|
||||||
|
BuildRequires: libevent-devel >= 2.1.5
|
||||||
|
BuildRequires: zlib-devel
|
||||||
|
BuildRequires: pkgconfig(systemd)
|
||||||
|
Requires: nss-mdns
|
||||||
|
%sysusers_requires
|
||||||
|
#
|
||||||
|
# mDNSResponder was used for <= 10.2:
|
||||||
|
Provides: mDNSResponder = 107.5
|
||||||
|
Obsoletes: mDNSResponder < 107.5
|
||||||
|
# Disable this conflict for now, it breaks staging, and it's pretty much obsolete, but can go back in if needed once a new version of avahi is released.
|
||||||
|
# File conflict for service-types.db openSUSE <= 12.3 SLE <= 11SP2
|
||||||
|
#Conflicts: avahi-utils <= 0.6.31-9.2
|
||||||
|
%endif
|
||||||
|
%if %{build_glib2}
|
||||||
|
BuildRequires: gobject-introspection-devel
|
||||||
|
BuildRequires: gtk3-devel
|
||||||
|
BuildRequires: libavahi-devel = %{version}
|
||||||
|
BuildRequires: update-desktop-files
|
||||||
|
BuildRequires: pkgconfig(pygobject-3.0)
|
||||||
|
%endif
|
||||||
|
%if %{build_qt5}
|
||||||
|
BuildRequires: dbus-1-devel
|
||||||
|
BuildRequires: libavahi-devel = %{version}
|
||||||
|
BuildRequires: pkgconfig(Qt5Core)
|
||||||
|
Requires: libavahi-client%{avahi_client_sover} >= %{version}
|
||||||
|
%endif
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
%if %{build_core}
|
||||||
|
BuildRequires: %{python_module dbm}
|
||||||
|
BuildRequires: %{python_module dbus-python}
|
||||||
|
%if 0%{?suse_version} >= 1550
|
||||||
|
# TW: generate subpackages for every python3 flavor
|
||||||
|
%define python_subpackage_only 1
|
||||||
|
%python_subpackages
|
||||||
|
%else
|
||||||
|
# Same defaults for all build targets
|
||||||
|
%define python_sitelib %python3_sitelib
|
||||||
|
%define python_files() -n python3-%{**}
|
||||||
|
%endif
|
||||||
|
%else
|
||||||
|
# Even if we don't install the python bindings outside of build_core, we need the default python3 to build the service types database:
|
||||||
|
%define pythons python3
|
||||||
|
BuildRequires: python3-dbm
|
||||||
|
BuildRequires: python3-dbus-python
|
||||||
|
# avoid error from unused python_subpackages
|
||||||
|
%define python_files() -n python3-%{**}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing. It uses D-Bus for
|
||||||
|
communication between user applications and a system daemon. The daemon
|
||||||
|
is used to coordinate application efforts in caching replies, necessary
|
||||||
|
to minimize the traffic imposed on networks.
|
||||||
|
|
||||||
|
The Avahi mDNS responder is now complete with features, implementing
|
||||||
|
all MUSTs and the majority of the SHOULDs of the mDNS and DNS-SD RFCs.
|
||||||
|
It passes all tests in the Apple Bonjour conformance test suite. In
|
||||||
|
addition, it supports some nifty things, like correct mDNS reflection
|
||||||
|
across LAN segments.
|
||||||
|
|
||||||
|
%package -n libavahi-client%{avahi_client_sover}
|
||||||
|
Summary: D-Bus Service for Zeroconf and Bonjour
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libavahi-client%{avahi_client_sover}
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-common%{avahi_common_sover}
|
||||||
|
Summary: D-Bus Service for Zeroconf and Bonjour
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libavahi-common%{avahi_common_sover}
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-core%{avahi_core_sover}
|
||||||
|
Summary: D-Bus Service for Zeroconf and Bonjour
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libavahi-core%{avahi_core_sover}
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-libevent%{avahi_libevent_sover}
|
||||||
|
Summary: D-Bus Service for Zeroconf and Bonjour
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libavahi-libevent%{avahi_libevent_sover}
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libdns_sd
|
||||||
|
Summary: mDNSResponder Compatibility Package for the Zeroconf/Bonjour D-Bus service
|
||||||
|
# mDNSResponder-lib used unversioned soname.
|
||||||
|
# Provide full compatibility with mDNSResponder (FIXME: should be fixed in the package):
|
||||||
|
#
|
||||||
|
# mDNSResponder-lib was used for <= 10.2:
|
||||||
|
Group: System/Libraries
|
||||||
|
Provides: mDNSResponder-lib = 107.5
|
||||||
|
Obsoletes: mDNSResponder-lib < 107.5
|
||||||
|
# Old name used for <= 10.3:
|
||||||
|
Provides: avahi-compat-mDNSResponder = %{version}
|
||||||
|
Obsoletes: avahi-compat-mDNSResponder < %{version}
|
||||||
|
%ifarch ia64 x86_64 ppc64 s390x
|
||||||
|
Provides: libdns_sd.so()(64bit)
|
||||||
|
%else
|
||||||
|
Provides: libdns_sd.so
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n libdns_sd
|
||||||
|
Apple mDNSResponder compatibility layer for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libhowl%{avahi_libhowl_sover}
|
||||||
|
Summary: Howl Compatibility Package for the Zeroconf/Bonjour D-Bus service
|
||||||
|
# Old name used for <= 10.3:
|
||||||
|
Group: System/Libraries
|
||||||
|
Provides: avahi-compat-howl = %{version}
|
||||||
|
Obsoletes: avahi-compat-howl < %{version}
|
||||||
|
|
||||||
|
%description -n libhowl%{avahi_libhowl_sover}
|
||||||
|
Howl compatibility layer for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%if 0%{?python_subpackage_only}
|
||||||
|
%package -n python-avahi
|
||||||
|
Summary: A set of Avahi utilities written in Python
|
||||||
|
Group: Development/Languages/Python
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
Requires: python-Twisted
|
||||||
|
Requires: python-dbm
|
||||||
|
Requires: python-dbus-python
|
||||||
|
# Old name used for <= 10.3:
|
||||||
|
%if "%{python_flavor}" == "python3" || "%{python_provides}" == "python3"
|
||||||
|
Provides: avahi-python = %{version}
|
||||||
|
Obsoletes: %{oldpython}-avahi < %{version}
|
||||||
|
Obsoletes: avahi-python < %{version}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n python-avahi
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%else
|
||||||
|
|
||||||
|
%package -n python3-avahi
|
||||||
|
Summary: A set of Avahi utilities written in Python
|
||||||
|
Group: Development/Languages/Python
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
Requires: python3-Twisted
|
||||||
|
Requires: python3-dbm
|
||||||
|
Requires: python3-dbus-python
|
||||||
|
# Old name used for <= 10.3:
|
||||||
|
Provides: avahi-python = %{version}
|
||||||
|
Obsoletes: avahi-python < %{version}
|
||||||
|
Obsoletes: python-avahi < %{version}
|
||||||
|
|
||||||
|
%description -n python3-avahi
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%package autoipd
|
||||||
|
Summary: IPv4LL Service for Zeroconf and Bonjour
|
||||||
|
# Split provides for upgrade from openSUSE <= 12.3 and SLE <= 11.
|
||||||
|
# Disable this conflict for now, it breaks staging, and it's pretty much obsolete, but can go back in if needed once a new version of avahi is released.
|
||||||
|
# File conflict for avahi-autoipd openSUSE <= 12.3 SLE <= 11
|
||||||
|
#Conflicts: avahi <= 0.6.31-9.2
|
||||||
|
# coreutils contains /usr/bin/chown
|
||||||
|
Group: Productivity/Networking/Other
|
||||||
|
Requires(post): coreutils
|
||||||
|
%sysusers_requires
|
||||||
|
Provides: avahi:%{_sbindir}/avahi-autoipd
|
||||||
|
|
||||||
|
%description autoipd
|
||||||
|
avahi-autoipd is an implementation of Dynamic Configuration of IPv4
|
||||||
|
Link-Local Addresses.
|
||||||
|
|
||||||
|
avahi-autoipd doesn't depend on any other Avahi library, hence it makes
|
||||||
|
sense to install it even if Avahi itself is not installed.
|
||||||
|
|
||||||
|
%package utils
|
||||||
|
Summary: Command Line Utilities for the Zeroconf/Bonjour D-Bus service
|
||||||
|
Group: Productivity/Networking/Other
|
||||||
|
Requires: %{_name} >= %{version}
|
||||||
|
|
||||||
|
%description utils
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-devel
|
||||||
|
Summary: Header files for the Zeroconf/Bonjour D-Bus service
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: dbus-1-devel
|
||||||
|
Requires: glibc-devel
|
||||||
|
Requires: libavahi-client%{avahi_client_sover} = %{version}
|
||||||
|
Requires: libavahi-common%{avahi_common_sover} = %{version}
|
||||||
|
Requires: libavahi-core%{avahi_core_sover} = %{version}
|
||||||
|
Requires: libavahi-libevent%{avahi_libevent_sover} = %{version}
|
||||||
|
# Last appeared in OpenSUSE 10.3:
|
||||||
|
Provides: avahi-devel = %{version}
|
||||||
|
Obsoletes: avahi-devel < %{version}
|
||||||
|
|
||||||
|
%description -n libavahi-devel
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package compat-mDNSResponder-devel
|
||||||
|
Summary: mDNSResponder Compatibility Package for the Zeroconf/Bonjour D-Bus service
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: libavahi-devel = %{version}
|
||||||
|
Requires: libdns_sd = %{version}
|
||||||
|
Provides: mDNSResponder-devel = 107.5
|
||||||
|
Obsoletes: mDNSResponder-devel < 107.5
|
||||||
|
|
||||||
|
%description compat-mDNSResponder-devel
|
||||||
|
Apple mDNSResponder compatibility layer for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package compat-howl-devel
|
||||||
|
Summary: Howl Compatibility Package for the Zeroconf/Bonjour D-Bus service
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: libavahi-devel = %{version}
|
||||||
|
Requires: libhowl%{avahi_libhowl_sover} = %{version}
|
||||||
|
|
||||||
|
%description compat-howl-devel
|
||||||
|
Howl compatibility layer for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-ui-gtk3-%{avahi_gtk3_sover}
|
||||||
|
Summary: D-Bus Service for Zeroconf and Bonjour
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libavahi-ui-gtk3-%{avahi_gtk3_sover}
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-glib%{avahi_glib_sover}
|
||||||
|
Summary: Glib Bindings for avahi, the D-Bus Service for Zeroconf and Bonjour
|
||||||
|
# Old name used for <= 10.3:
|
||||||
|
Group: System/Libraries
|
||||||
|
Provides: avahi-glib = %{version}
|
||||||
|
Obsoletes: avahi-glib < %{version}
|
||||||
|
|
||||||
|
%description -n libavahi-glib%{avahi_glib_sover}
|
||||||
|
GLib support for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-gobject%{avahi_gobject_sover}
|
||||||
|
Summary: D-Bus Service for Zeroconf and Bonjour
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libavahi-gobject%{avahi_gobject_sover}
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n typelib-1_0-Avahi-0_6
|
||||||
|
Summary: Introspection bindings for the Zeroconf/Bonjour D-Bus service
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n typelib-1_0-Avahi-0_6
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
This package provides the GObject Introspection bindings for Avahi.
|
||||||
|
|
||||||
|
%package -n avahi-utils-gtk
|
||||||
|
Summary: GTK+ Utilities for the Zeroconf/Bonjour D-Bus service
|
||||||
|
Group: Productivity/Networking/Other
|
||||||
|
Requires: %{_name} >= %{version}
|
||||||
|
# Due to a mistake in the spec file build staging, this package had
|
||||||
|
# name avahi-glib2-utils-gtk in 11.1 and SLE11 and avahi-utils-gtk in
|
||||||
|
# all other products.
|
||||||
|
Provides: avahi-glib2-utils-gtk = %{version}
|
||||||
|
Obsoletes: avahi-glib2-utils-gtk < %{version}
|
||||||
|
|
||||||
|
%description -n avahi-utils-gtk
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# This is the avahi-discover command, only provided for the primary python3 flavor
|
||||||
|
%package -n python3-avahi-gtk
|
||||||
|
Summary: A set of Avahi utilities written in Python Using python-gtk
|
||||||
|
Group: Development/Languages/Python
|
||||||
|
Requires: python3-avahi = %{version}
|
||||||
|
Requires: python3-gobject
|
||||||
|
Requires(post): coreutils
|
||||||
|
Requires(postun):coreutils
|
||||||
|
Provides: %{oldpython}-avahi-gtk = %{version}
|
||||||
|
Obsoletes: %{oldpython}-avahi-gtk < %{version}
|
||||||
|
# Provide split-provides for update from <= 11.0:
|
||||||
|
Provides: %{oldpython}-avahi:%{_bindir}/avahi-discover
|
||||||
|
|
||||||
|
%description -n python3-avahi-gtk
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-glib-devel
|
||||||
|
Summary: Header files for Avahi's Glib bindings
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: libavahi-devel = %{version}
|
||||||
|
Requires: libavahi-glib%{avahi_glib_sover} = %{version}
|
||||||
|
Requires: libavahi-ui-gtk3-%{avahi_gtk3_sover} = %{version}
|
||||||
|
Requires: typelib-1_0-Avahi-0_6 = %{version}
|
||||||
|
# Last appeared in OpenSUSE 10.3:
|
||||||
|
Provides: avahi-devel:%{_libdir}/libavahi-glib.so
|
||||||
|
|
||||||
|
%description -n libavahi-glib-devel
|
||||||
|
GLib support for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-gobject-devel
|
||||||
|
Summary: Header files for Avahi's GObject bindings
|
||||||
|
Group: System/Daemons
|
||||||
|
Requires: glib2-devel
|
||||||
|
Requires: libavahi-devel = %{version}
|
||||||
|
Requires: libavahi-glib-devel
|
||||||
|
Requires: libavahi-gobject%{avahi_gobject_sover} = %{version}
|
||||||
|
|
||||||
|
%description -n libavahi-gobject-devel
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast
|
||||||
|
DNS specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%if %{build_core}
|
||||||
|
%lang_package
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_qt5}
|
||||||
|
%package -n libavahi-qt5-%{avahi_qt5_sover}
|
||||||
|
Summary: Qt5 Bindings for avahi, the D-Bus Service for Zeroconf and Bonjour
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libavahi-qt5-%{avahi_qt5_sover}
|
||||||
|
Qt5 support for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
|
||||||
|
%package -n libavahi-qt5-devel
|
||||||
|
Summary: Header files for Avahi's Qt5 bindings
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: libavahi-devel = %{version}
|
||||||
|
Requires: libavahi-qt5-%{avahi_qt5_sover} = %{version}
|
||||||
|
|
||||||
|
%description -n libavahi-qt5-devel
|
||||||
|
Development files for the Qt5 support for Avahi.
|
||||||
|
|
||||||
|
Avahi is an implementation of the DNS Service Discovery and Multicast DNS
|
||||||
|
specifications for Zeroconf Computing.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{_name}-%{version}
|
||||||
|
cp -a %{SOURCE5} sysconfig.avahi
|
||||||
|
sed "s:@docdir@:%{_docdir}:g" <%{SOURCE6} >sysconfig.avahi-autoipd
|
||||||
|
cp -a %{SOURCE9} avahi-autoipd/README.SUSE
|
||||||
|
sed -ie "s/libevent-[0-9\.]*/libevent/" avahi-libevent.pc.in
|
||||||
|
cp -a %{SOURCE12} service-type-database/build-db
|
||||||
|
%autopatch -p1
|
||||||
|
|
||||||
|
%if !%{build_core}
|
||||||
|
# Replace all .la references from local .la files to installed versions
|
||||||
|
# with exception of libavahi-glib.la.
|
||||||
|
# It allows to build only the binding subpackage.
|
||||||
|
sed -i 's:libavahi-glib\.la:@@SKIP LIBAVAHI GLIB@@:g
|
||||||
|
s:\(\.\.\|\$(top_builddir)\)/[^/]*/\(lib[^ ]*\.la\):%{_libdir}/\2:g
|
||||||
|
s:@@SKIP LIBAVAHI GLIB@@:libavahi-glib.la:g
|
||||||
|
' */Makefile.am
|
||||||
|
%endif
|
||||||
|
if ! test -f %{_datadir}/aclocal/glib-gettext.m4 ; then
|
||||||
|
cat %{SOURCE4} >>acinclude.m4
|
||||||
|
fi
|
||||||
|
|
||||||
|
%build
|
||||||
|
%sysusers_generate_pre %{SOURCE13} avahi avahi.conf
|
||||||
|
%sysusers_generate_pre %{SOURCE14} autoipd avahi-autoipd.conf
|
||||||
|
autoreconf -f -i
|
||||||
|
intltoolize -f
|
||||||
|
%{python_expand # configure for every python flavor
|
||||||
|
export PYTHON=%{_bindir}/$python
|
||||||
|
%configure\
|
||||||
|
--disable-static\
|
||||||
|
--with-distro=suse\
|
||||||
|
--enable-xmltoman\
|
||||||
|
--with-dbus-sys=%{_datadir}/dbus-1/system.d \
|
||||||
|
%if %{build_core}
|
||||||
|
--enable-compat-libdns_sd\
|
||||||
|
--enable-compat-howl\
|
||||||
|
--enable-libevent\
|
||||||
|
%else
|
||||||
|
--disable-compat-libdns_sd\
|
||||||
|
--disable-compat-howl\
|
||||||
|
--disable-libevent\
|
||||||
|
%endif
|
||||||
|
%if %{build_glib2}
|
||||||
|
--enable-glib\
|
||||||
|
--enable-gobject\
|
||||||
|
--disable-gtk\
|
||||||
|
--enable-gtk3\
|
||||||
|
--enable-pygobject\
|
||||||
|
%else
|
||||||
|
--disable-glib\
|
||||||
|
--disable-gobject\
|
||||||
|
--disable-pygobject\
|
||||||
|
--disable-gtk\
|
||||||
|
--disable-gtk3\
|
||||||
|
%endif
|
||||||
|
--disable-qt3\
|
||||||
|
--disable-qt4\
|
||||||
|
--disable-mono\
|
||||||
|
%if %{build_qt5}
|
||||||
|
--enable-qt5\
|
||||||
|
%else
|
||||||
|
--disable-qt5\
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64 ppc64le s390x
|
||||||
|
--disable-monodoc\
|
||||||
|
%endif
|
||||||
|
--with-avahi-priv-access-group=avahi\
|
||||||
|
--with-autoipd-user=avahi-autoipd\
|
||||||
|
--with-autoipd-group=avahi-autoipd
|
||||||
|
|
||||||
|
cp -r avahi-python avahi-python-%{$python_bin_suffix}
|
||||||
|
}
|
||||||
|
|
||||||
|
%if %{build_glib2} && !%{build_core}
|
||||||
|
for DIR in avahi-glib avahi-gobject avahi-ui avahi-discover-standalone avahi-python man ; do
|
||||||
|
cd $DIR
|
||||||
|
%make_build
|
||||||
|
cd ..
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
%if %{build_core}
|
||||||
|
%{python_expand # build for every python flavor
|
||||||
|
cd avahi-python-%{$python_bin_suffix}
|
||||||
|
%make_build
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
%endif
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%if %{build_glib2} && !%{build_core}
|
||||||
|
for DIR in avahi-glib avahi-gobject avahi-ui avahi-discover-standalone avahi-python man ; do
|
||||||
|
cd $DIR
|
||||||
|
%make_install
|
||||||
|
cd ..
|
||||||
|
done
|
||||||
|
cd -
|
||||||
|
%endif
|
||||||
|
%if %{build_qt5} && !%{build_core}
|
||||||
|
cd avahi-qt
|
||||||
|
%endif
|
||||||
|
%make_install
|
||||||
|
# do not install sysv init scripts
|
||||||
|
rm -rf %{buildroot}%{_sysconfdir}/init.d/
|
||||||
|
# Do not install ssh and sftp services
|
||||||
|
rm -rf %{buildroot}%{_sysconfdir}/avahi/services/ssh.service
|
||||||
|
rm -rf %{buildroot}%{_sysconfdir}/avahi/services/sftp-ssh.service
|
||||||
|
|
||||||
|
%if !%{build_core}
|
||||||
|
cd ..
|
||||||
|
%make_build install-pkgconfigDATA DESTDIR=%{buildroot}
|
||||||
|
%endif
|
||||||
|
%if %{build_core}
|
||||||
|
%{python_expand # install for every python flavor
|
||||||
|
cd avahi-python-%{$python_bin_suffix}
|
||||||
|
%make_install
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/avahi-bookmarks
|
||||||
|
%python_clone -a %{buildroot}%{_mandir}/man1/avahi-bookmarks.1
|
||||||
|
# do not remove this unless you plan to fix _all_ the references to
|
||||||
|
# it. all (multiple) previous attempts have failed already
|
||||||
|
#rm "%{buildroot}/%{_libdir}/libavahi-common.la"
|
||||||
|
install -d %{buildroot}/%{_localstatedir}/run/avahi-daemon
|
||||||
|
ln -s avahi-compat-libdns_sd/dns_sd.h %{buildroot}/%{_includedir}/
|
||||||
|
ln -s avahi-compat-howl.pc %{buildroot}/%{_libdir}/pkgconfig/howl.pc
|
||||||
|
install -d %{buildroot}/%{_prefix}/lib/avahi
|
||||||
|
install -d %{buildroot}/%{_localstatedir}/lib/avahi-autoipd
|
||||||
|
mkdir -p %{buildroot}/%{_sbindir}
|
||||||
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcavahi-daemon
|
||||||
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcavahi-dnsconfd
|
||||||
|
install -d %{buildroot}/%{_datadir}/pixmaps
|
||||||
|
install -d %{buildroot}%{_fillupdir}
|
||||||
|
install -m 644 sysconfig.avahi* %{buildroot}%{_fillupdir}/
|
||||||
|
install -Dm0644 %{SOURCE13} %{buildroot}%{_sysusersdir}/avahi.conf
|
||||||
|
install -Dm0644 %{SOURCE14} %{buildroot}%{_sysusersdir}/avahi-autoipd.conf
|
||||||
|
%if ! %{build_glib2}
|
||||||
|
# Note: This file is intentionally installed here. It is needed for avahi-utils-gtk and python3-avahi-gtk:
|
||||||
|
install -d %{buildroot}/%{_datadir}/avahi/interfaces
|
||||||
|
install -m 644 avahi-discover-standalone/avahi-discover.ui %{buildroot}/%{_datadir}/avahi/interfaces
|
||||||
|
%endif
|
||||||
|
%find_lang %{name} %{?no_lang_C}
|
||||||
|
%else
|
||||||
|
# There is no simple way to not install core files. Remove them here.
|
||||||
|
# The rest is enabled/disabled in configure as needed.
|
||||||
|
rm %{buildroot}/%{_libdir}/pkgconfig/avahi-client.pc
|
||||||
|
rm %{buildroot}/%{_libdir}/pkgconfig/avahi-core.pc
|
||||||
|
%if %{build_glib2}
|
||||||
|
rm %{buildroot}/%{_bindir}/avahi-bookmarks
|
||||||
|
rm -r %{buildroot}/%{python3_sitelib}/avahi
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-bookmarks.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-browse-domains.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-browse.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-publish-address.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-publish-service.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-publish.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-resolve-address.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-resolve-host-name.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-resolve.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man1/avahi-set-host-name.1*
|
||||||
|
rm %{buildroot}/%{_mandir}/man5/avahi-daemon.conf.5*
|
||||||
|
rm %{buildroot}/%{_mandir}/man5/avahi.hosts.5*
|
||||||
|
rm %{buildroot}/%{_mandir}/man5/avahi.service.5*
|
||||||
|
rm %{buildroot}/%{_mandir}/man8/avahi-autoipd.8*
|
||||||
|
rm %{buildroot}/%{_mandir}/man8/avahi-autoipd.action.8*
|
||||||
|
rm %{buildroot}/%{_mandir}/man8/avahi-daemon.8*
|
||||||
|
rm %{buildroot}/%{_mandir}/man8/avahi-dnsconfd.8*
|
||||||
|
rm %{buildroot}/%{_mandir}/man8/avahi-dnsconfd.action.8*
|
||||||
|
# Note: This file was intentionally moved to avahi. It is needed for avahi-utils-gtk and python3-avahi-gtk:
|
||||||
|
rm %{buildroot}/%{_datadir}/avahi/interfaces/avahi-discover.ui
|
||||||
|
rmdir %{buildroot}/%{_datadir}/avahi/interfaces
|
||||||
|
rmdir %{buildroot}/%{_datadir}/avahi
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%if %{build_glib2}
|
||||||
|
%suse_update_desktop_file avahi-discover
|
||||||
|
%suse_update_desktop_file bvnc
|
||||||
|
%suse_update_desktop_file bssh
|
||||||
|
%endif
|
||||||
|
%fdupes %{buildroot}/%{_libdir}
|
||||||
|
|
||||||
|
%pre -f avahi.pre
|
||||||
|
%service_add_pre avahi-dnsconfd.service avahi-daemon.service
|
||||||
|
# bnc#853845,bnc#851953: do not start by default under
|
||||||
|
# sysconfig as this breaks vlan,bridge,bonding setups
|
||||||
|
# in pre to revert old default setting from template.
|
||||||
|
if test -f %{_fillupdir}/sysconfig.avahi-autoipd -a \
|
||||||
|
-f etc/sysconfig/avahi ; then
|
||||||
|
. %{_fillupdir}/sysconfig.avahi-autoipd
|
||||||
|
if test "X$AVAHI_AUTOIPD_ENABLE" = "Xyes" ; then
|
||||||
|
sed -i etc/sysconfig/avahi \
|
||||||
|
-e 's/^\(AVAHI_AUTOIPD_ENABLE\)=.*/\1="no"/'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
%post
|
||||||
|
%{fillup_only -n avahi}
|
||||||
|
%{fillup_only -ns security checksig}
|
||||||
|
%service_add_post avahi-dnsconfd.service avahi-daemon.service
|
||||||
|
|
||||||
|
%preun
|
||||||
|
%service_del_preun avahi-dnsconfd.service avahi-daemon.service
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%service_del_postun avahi-dnsconfd.service avahi-daemon.service
|
||||||
|
|
||||||
|
%pre autoipd -f autoipd.pre
|
||||||
|
|
||||||
|
%post autoipd
|
||||||
|
%{fillup_only -ns avahi autoipd}
|
||||||
|
|
||||||
|
%ldconfig_scriptlets -n libavahi-client%{avahi_client_sover}
|
||||||
|
%ldconfig_scriptlets -n libavahi-common%{avahi_common_sover}
|
||||||
|
%ldconfig_scriptlets -n libavahi-core%{avahi_core_sover}
|
||||||
|
%ldconfig_scriptlets -n libavahi-libevent%{avahi_libevent_sover}
|
||||||
|
%ldconfig_scriptlets -n libdns_sd
|
||||||
|
%ldconfig_scriptlets -n libhowl%{avahi_libhowl_sover}
|
||||||
|
%ldconfig_scriptlets -n libavahi-ui-gtk3-%{avahi_gtk3_sover}
|
||||||
|
%ldconfig_scriptlets -n libavahi-gobject%{avahi_gobject_sover}
|
||||||
|
%ldconfig_scriptlets -n libavahi-glib%{avahi_glib_sover}
|
||||||
|
|
||||||
|
%if %{build_qt5}
|
||||||
|
%ldconfig_scriptlets -n libavahi-qt5-%{avahi_qt5_sover}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%post -n python3-avahi-gtk
|
||||||
|
%desktop_database_post
|
||||||
|
|
||||||
|
%postun -n python3-avahi-gtk
|
||||||
|
%desktop_database_post
|
||||||
|
|
||||||
|
%post -n avahi-utils-gtk
|
||||||
|
%desktop_database_post
|
||||||
|
|
||||||
|
%postun -n avahi-utils-gtk
|
||||||
|
%desktop_database_post
|
||||||
|
|
||||||
|
%if %{build_core}
|
||||||
|
%if 0%{?python_subpackage_only}
|
||||||
|
# this is rewritten by python_subpackages into the appropriate flavor
|
||||||
|
%post -n python-avahi
|
||||||
|
%python_install_alternative avahi-bookmarks avahi-bookmarks.1
|
||||||
|
|
||||||
|
%postun -n python-avahi
|
||||||
|
%python_uninstall_alternative avahi-bookmarks
|
||||||
|
%else
|
||||||
|
|
||||||
|
%post -n python3-avahi
|
||||||
|
%python_install_alternative avahi-bookmarks avahi-bookmarks.1
|
||||||
|
|
||||||
|
%postun -n python3-avahi
|
||||||
|
%python_uninstall_alternative avahi-bookmarks
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc docs/* avahi-daemon/sftp-ssh.service avahi-daemon/ssh.service
|
||||||
|
%dir %{_libdir}/avahi/
|
||||||
|
# Note: This file is intentionally packaged here. It is needed for python3-avahi and avahi-utils:
|
||||||
|
%{_libdir}/avahi/service-types.db
|
||||||
|
# avahi creates the directory itself, we do not package it
|
||||||
|
# since it might be on tmpfs
|
||||||
|
%attr(-,avahi,avahi) %ghost /run/avahi-daemon
|
||||||
|
%{_mandir}/man5/*.5%{ext_man}
|
||||||
|
%{_mandir}/man8/*.8%{ext_man}
|
||||||
|
%exclude %{_mandir}/man8/avahi-autoipd.8.*
|
||||||
|
%{_sbindir}/avahi-*
|
||||||
|
%exclude %{_sbindir}/avahi-autoipd
|
||||||
|
%{_sbindir}/rcavahi-daemon
|
||||||
|
%{_sbindir}/rcavahi-dnsconfd
|
||||||
|
%dir %{_sysconfdir}/avahi
|
||||||
|
%config %{_sysconfdir}/avahi/avahi-daemon.conf
|
||||||
|
%{_sysconfdir}/avahi/avahi-dnsconfd.action
|
||||||
|
%dir %{_sysconfdir}/avahi/services
|
||||||
|
%config(noreplace) %{_sysconfdir}/avahi/hosts
|
||||||
|
%{_datadir}/dbus-1/system.d/*.conf
|
||||||
|
%{_datadir}/dbus-1/interfaces/org.freedesktop.Avahi.*.xml
|
||||||
|
%{_datadir}/dbus-1/system-services/org.freedesktop.Avahi.service
|
||||||
|
%dir %{_prefix}/lib/avahi
|
||||||
|
%{_unitdir}/avahi-daemon.service
|
||||||
|
%{_unitdir}/avahi-daemon.socket
|
||||||
|
%{_unitdir}/avahi-dnsconfd.service
|
||||||
|
%{_sysusersdir}/avahi.conf
|
||||||
|
# Common file for avahi-utils-gtk and python3-avahi-gtk:
|
||||||
|
%dir %{_datadir}/avahi/
|
||||||
|
%{_datadir}/avahi/interfaces
|
||||||
|
%{_fillupdir}/sysconfig.avahi
|
||||||
|
|
||||||
|
%files lang -f %{name}.lang
|
||||||
|
|
||||||
|
%files -n libavahi-client%{avahi_client_sover}
|
||||||
|
%{_libdir}/libavahi-client*.so.*
|
||||||
|
|
||||||
|
%files -n libavahi-common%{avahi_common_sover}
|
||||||
|
%{_libdir}/libavahi-common*.so.*
|
||||||
|
|
||||||
|
%files -n libavahi-core%{avahi_core_sover}
|
||||||
|
%{_libdir}/libavahi-core*.so.*
|
||||||
|
|
||||||
|
%files -n libavahi-libevent%{avahi_libevent_sover}
|
||||||
|
%{_libdir}/libavahi-libevent*.so.*
|
||||||
|
|
||||||
|
%files -n libdns_sd
|
||||||
|
# libdns_sd.so must be in non-devel package to provide mDNSResponder-lib compatibility:
|
||||||
|
%{_libdir}/libdns_sd.so
|
||||||
|
%{_libdir}/libdns_sd.so.*
|
||||||
|
|
||||||
|
%files -n libhowl%{avahi_libhowl_sover}
|
||||||
|
%{_libdir}/libhowl.so.*
|
||||||
|
|
||||||
|
%files %{python_files avahi}
|
||||||
|
%python_alternative %{_bindir}/avahi-bookmarks
|
||||||
|
%python_alternative %{_mandir}/man1/avahi-bookmarks.1%{ext_man}
|
||||||
|
%{python_sitelib}/avahi
|
||||||
|
|
||||||
|
%files autoipd
|
||||||
|
%doc avahi-autoipd/README.SUSE
|
||||||
|
%{_mandir}/man8/avahi-autoipd.8%{ext_man}
|
||||||
|
%attr(-,avahi-autoipd,avahi-autoipd)%{_localstatedir}/lib/avahi-autoipd
|
||||||
|
%{_sbindir}/avahi-autoipd
|
||||||
|
%{_sysconfdir}/avahi/avahi-autoipd.action
|
||||||
|
%{_fillupdir}/sysconfig.avahi-autoipd
|
||||||
|
%{_sysusersdir}/avahi-autoipd.conf
|
||||||
|
|
||||||
|
%files utils
|
||||||
|
%{_bindir}/avahi-browse*
|
||||||
|
%{_bindir}/avahi-publish*
|
||||||
|
%{_bindir}/avahi-resolve*
|
||||||
|
%{_bindir}/avahi-set-host-name
|
||||||
|
%dir %{_datadir}/avahi/
|
||||||
|
%{_datadir}/avahi/avahi-service.dtd
|
||||||
|
%{_mandir}/man1/avahi-browse*.1*
|
||||||
|
%{_mandir}/man1/avahi-publish*.1*
|
||||||
|
%{_mandir}/man1/avahi-resolve*.1*
|
||||||
|
%{_mandir}/man1/avahi-set-host-name.1*
|
||||||
|
|
||||||
|
%files -n libavahi-devel
|
||||||
|
# FIXME: Maybe split to particular subpackages.
|
||||||
|
#%doc doc/api/html
|
||||||
|
#%doc doc/*.html doc/*.txt doc/file-boilerplate.c doc/TODO
|
||||||
|
%{_includedir}/avahi-client
|
||||||
|
%{_includedir}/avahi-common
|
||||||
|
%{_includedir}/avahi-core
|
||||||
|
%{_includedir}/avahi-libevent
|
||||||
|
# avahi devel files
|
||||||
|
%{_libdir}/libavahi-client.*a
|
||||||
|
%{_libdir}/libavahi-client*.so
|
||||||
|
%{_libdir}/libavahi-core.*a
|
||||||
|
%{_libdir}/libavahi-core*.so
|
||||||
|
%{_libdir}/libavahi-common*.so
|
||||||
|
# do not remove unless you fix the resulting problems
|
||||||
|
# reference is in libavahi-client.la
|
||||||
|
%{_libdir}/libavahi-common*.*a
|
||||||
|
%{_libdir}/libavahi-libevent.*a
|
||||||
|
%{_libdir}/libavahi-libevent*.so
|
||||||
|
%{_libdir}/pkgconfig/avahi-client.pc
|
||||||
|
%{_libdir}/pkgconfig/avahi-core.pc
|
||||||
|
%{_libdir}/pkgconfig/avahi-libevent.pc
|
||||||
|
|
||||||
|
%files compat-mDNSResponder-devel
|
||||||
|
%{_includedir}/avahi-compat-libdns_sd
|
||||||
|
%{_includedir}/dns_sd.h
|
||||||
|
%{_libdir}/libdns_sd.*a
|
||||||
|
%{_libdir}/pkgconfig/avahi-compat-libdns_sd.pc
|
||||||
|
|
||||||
|
%files compat-howl-devel
|
||||||
|
%{_includedir}/avahi-compat-howl
|
||||||
|
%{_libdir}/libhowl.so
|
||||||
|
%{_libdir}/libhowl.*a
|
||||||
|
%{_libdir}/pkgconfig/avahi-compat-howl.pc
|
||||||
|
%{_libdir}/pkgconfig/howl.pc
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_glib2}
|
||||||
|
%files -n libavahi-ui-gtk3-%{avahi_gtk3_sover}
|
||||||
|
%{_libdir}/libavahi-ui-gtk3.so.%{avahi_gtk3_sover}*
|
||||||
|
|
||||||
|
%files -n libavahi-glib%{avahi_glib_sover}
|
||||||
|
%{_libdir}/libavahi-glib*.so.*
|
||||||
|
|
||||||
|
%files -n libavahi-gobject%{avahi_gobject_sover}
|
||||||
|
%{_libdir}/libavahi-gobject*.so.*
|
||||||
|
|
||||||
|
%files -n typelib-1_0-Avahi-0_6
|
||||||
|
%{_libdir}/girepository-1.0/Avahi-0.6.typelib
|
||||||
|
%{_libdir}/girepository-1.0/AvahiCore-0.6.typelib
|
||||||
|
|
||||||
|
%files -n python3-avahi-gtk
|
||||||
|
%{_bindir}/avahi-discover
|
||||||
|
%{_datadir}/applications/avahi-discover.desktop
|
||||||
|
%{_mandir}/man1/avahi-discover.1*
|
||||||
|
|
||||||
|
%files -n avahi-utils-gtk
|
||||||
|
%{_bindir}/bshell
|
||||||
|
%{_bindir}/bssh
|
||||||
|
%{_bindir}/bvnc
|
||||||
|
%{_bindir}/avahi-discover-standalone
|
||||||
|
%{_datadir}/applications/bssh.desktop
|
||||||
|
%{_datadir}/applications/bvnc.desktop
|
||||||
|
%{_mandir}/man1/bshell.1*
|
||||||
|
%{_mandir}/man1/bssh.1*
|
||||||
|
%{_mandir}/man1/bvnc.1*
|
||||||
|
|
||||||
|
%files -n libavahi-glib-devel
|
||||||
|
%{_includedir}/avahi-glib
|
||||||
|
%{_includedir}/avahi-ui
|
||||||
|
%{_libdir}/libavahi-glib*.*a
|
||||||
|
%{_libdir}/libavahi-glib*.so
|
||||||
|
%{_libdir}/libavahi-ui*.*a
|
||||||
|
%{_libdir}/libavahi-ui*.*so
|
||||||
|
%{_libdir}/pkgconfig/avahi-glib.pc
|
||||||
|
%{_libdir}/pkgconfig/avahi-ui-gtk3.pc
|
||||||
|
|
||||||
|
%files -n libavahi-gobject-devel
|
||||||
|
%{_includedir}/avahi-gobject
|
||||||
|
%{_libdir}/libavahi-gobject*.*a
|
||||||
|
%{_libdir}/libavahi-gobject*.so
|
||||||
|
%{_libdir}/pkgconfig/avahi-gobject.pc
|
||||||
|
%{_datadir}/gir-1.0/*.gir
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_qt5}
|
||||||
|
%files -n libavahi-qt5-%{avahi_qt5_sover}
|
||||||
|
%{_libdir}/libavahi-qt5.so.*
|
||||||
|
|
||||||
|
%files -n libavahi-qt5-devel
|
||||||
|
%{_includedir}/avahi-qt5
|
||||||
|
%{_libdir}/libavahi-qt5.*a
|
||||||
|
%{_libdir}/libavahi-qt5.so
|
||||||
|
%{_libdir}/pkgconfig/avahi-qt5.pc
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
10
avahi.sysconfig
Normal file
10
avahi.sysconfig
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
## Path: System/Zeroconf
|
||||||
|
## Description: Zeroconf (Bonjour, Rendezvous) options
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: yes
|
||||||
|
#
|
||||||
|
# Detect unicast DNS .local domain and temporarily disable avahi in such case.
|
||||||
|
# For more read http://avahi.org/wiki/AvahiAndUnicastDotLocal
|
||||||
|
#
|
||||||
|
AVAHI_DAEMON_DETECT_LOCAL="yes"
|
2
avahi.sysusers
Normal file
2
avahi.sysusers
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#Type Name ID GECOS Home directory Shell
|
||||||
|
u avahi - "User for Avahi" /run/avahi-daemon -
|
13
baselibs.conf
Normal file
13
baselibs.conf
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
avahi
|
||||||
|
libavahi-client3
|
||||||
|
libavahi-common3
|
||||||
|
obsoletes "avahi-<targettype> <= <version>"
|
||||||
|
provides "avahi-<targettype> = <version>"
|
||||||
|
libavahi-glib1
|
||||||
|
obsoletes "avahi-glib-<targettype> <= <version>"
|
||||||
|
provides "avahi-glib-<targettype> = <version>"
|
||||||
|
libdns_sd
|
||||||
|
obsoletes "avahi-compat-mDNSResponder-<targettype> <= <version>"
|
||||||
|
provides "avahi-compat-mDNSResponder-<targettype> = <version>"
|
||||||
|
obsoletes "mDNSResponder-lib-<targettype> <= 107.5"
|
||||||
|
obsoletes "mDNSResponder-<targettype> <= 107.5"
|
49
build-db
Normal file
49
build-db
Normal file
@ -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()
|
24
harden_avahi-daemon.service.patch
Normal file
24
harden_avahi-daemon.service.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Index: avahi-0.8/avahi-daemon/avahi-daemon.service.in
|
||||||
|
===================================================================
|
||||||
|
--- avahi-0.8.orig/avahi-daemon/avahi-daemon.service.in
|
||||||
|
+++ avahi-0.8/avahi-daemon/avahi-daemon.service.in
|
||||||
|
@@ -20,6 +20,19 @@ Description=Avahi mDNS/DNS-SD Stack
|
||||||
|
Requires=avahi-daemon.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
+# added automatically, for details please see
|
||||||
|
+# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
||||||
|
+ProtectSystem=full
|
||||||
|
+ProtectHome=true
|
||||||
|
+PrivateDevices=true
|
||||||
|
+ProtectHostname=true
|
||||||
|
+ProtectClock=true
|
||||||
|
+ProtectKernelTunables=true
|
||||||
|
+ProtectKernelModules=true
|
||||||
|
+ProtectKernelLogs=true
|
||||||
|
+ProtectControlGroups=true
|
||||||
|
+RestrictRealtime=true
|
||||||
|
+# end of automatic additions
|
||||||
|
Type=dbus
|
||||||
|
BusName=org.freedesktop.Avahi
|
||||||
|
ExecStart=@sbindir@/avahi-daemon -s
|
24
harden_avahi-dnsconfd.service.patch
Normal file
24
harden_avahi-dnsconfd.service.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Index: avahi-0.8/avahi-dnsconfd/avahi-dnsconfd.service.in
|
||||||
|
===================================================================
|
||||||
|
--- avahi-0.8.orig/avahi-dnsconfd/avahi-dnsconfd.service.in
|
||||||
|
+++ avahi-0.8/avahi-dnsconfd/avahi-dnsconfd.service.in
|
||||||
|
@@ -21,6 +21,19 @@ Requires=avahi-daemon.socket avahi-daemo
|
||||||
|
After=avahi-daemon.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
+# added automatically, for details please see
|
||||||
|
+# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
||||||
|
+ProtectSystem=full
|
||||||
|
+ProtectHome=true
|
||||||
|
+PrivateDevices=true
|
||||||
|
+ProtectHostname=true
|
||||||
|
+ProtectClock=true
|
||||||
|
+ProtectKernelTunables=true
|
||||||
|
+ProtectKernelModules=true
|
||||||
|
+ProtectKernelLogs=true
|
||||||
|
+ProtectControlGroups=true
|
||||||
|
+RestrictRealtime=true
|
||||||
|
+# end of automatic additions
|
||||||
|
Type=simple
|
||||||
|
ExecStart=@sbindir@/avahi-dnsconfd -s
|
||||||
|
|
106
update_spec.pl
Normal file
106
update_spec.pl
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
|
||||||
|
my $name = $ARGV[0];
|
||||||
|
$name =~ s,.*/,,;
|
||||||
|
$name =~ s,\.spec.*,,;
|
||||||
|
|
||||||
|
my %attributes = ();
|
||||||
|
open(FILE, $ARGV[1]) || die 'no attributes';
|
||||||
|
my $pack = undef;
|
||||||
|
my $text = undef;
|
||||||
|
while ( <FILE> ) {
|
||||||
|
if (/^\+(.*)$/) { $pack = $1; $text = ''; next }
|
||||||
|
if (/^-(.*)$/) {
|
||||||
|
if ($pack ne $1) {
|
||||||
|
die "$pack and $1 do not match";
|
||||||
|
}
|
||||||
|
$text =~ s,^\s*,,;
|
||||||
|
$text =~ s,\s*$,,;
|
||||||
|
$attributes{$pack} = $text;
|
||||||
|
$text = undef;
|
||||||
|
$pack = undef;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if (defined $text) {
|
||||||
|
$text .= $_;
|
||||||
|
} elsif (/^(\S*)\s*(.*)$/) {
|
||||||
|
my $attr = $1;
|
||||||
|
my $string = $2;
|
||||||
|
$string =~ s,^\s*,,;
|
||||||
|
$string =~ s,\s*$,,;
|
||||||
|
$attributes{$attr} = $string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close(FILE);
|
||||||
|
|
||||||
|
open(FILE, $ARGV[0]);
|
||||||
|
|
||||||
|
sub description()
|
||||||
|
{
|
||||||
|
if (/^%description\s*(.*)\s*/) {
|
||||||
|
my $suffix = $1;
|
||||||
|
my $pname = $name;
|
||||||
|
|
||||||
|
if ($suffix =~ m/-n\s*(.*)/) {
|
||||||
|
$pname = $1;
|
||||||
|
} else {
|
||||||
|
$pname = "$name-$suffix" if ($suffix);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined $attributes{"description.$pname"}) {
|
||||||
|
print $_;
|
||||||
|
my $descr = $attributes{"description.$pname"};
|
||||||
|
print "$descr\n";
|
||||||
|
$_ = '';
|
||||||
|
do {
|
||||||
|
$_ = <FILE>;
|
||||||
|
} while ( $_ !~ /^%/ && $_ !~ /^@/ );
|
||||||
|
print "\n";
|
||||||
|
description();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# current subpackage
|
||||||
|
my $pname = $name;
|
||||||
|
|
||||||
|
while ( <FILE> )
|
||||||
|
{
|
||||||
|
if (/^Name:\s*(.*)/) {
|
||||||
|
$name = $1;
|
||||||
|
$pname = $1;
|
||||||
|
}
|
||||||
|
description();
|
||||||
|
|
||||||
|
if (/^%package\s*(.*)/) {
|
||||||
|
my $suffix = $1;
|
||||||
|
if ($suffix =~ m/-n\s*(.*)/) {
|
||||||
|
$pname = $1;
|
||||||
|
} else {
|
||||||
|
$pname = "$name-$1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/^(Summary:\s*)(.*)$/) {
|
||||||
|
if (defined $attributes{"summary.$pname"}) {
|
||||||
|
print $1 . $attributes{"summary.$pname"} ."\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (/^(License:\s*)(.*)$/) {
|
||||||
|
if (defined $attributes{"license.$pname"}) {
|
||||||
|
print $1 . $attributes{"license.$pname"} ."\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (/^(Group:\s*)(.*)$/) {
|
||||||
|
if (defined $attributes{"group.$pname"}) {
|
||||||
|
print $1 . $attributes{"group.$pname"} ."\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
close(FILE);
|
Loading…
Reference in New Issue
Block a user