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}
|
||||