932 lines
32 KiB
RPMSpec
932 lines
32 KiB
RPMSpec
#
|
|
# 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
|
|
# PATCH-FIX-UPSTREAM avahi-CVE-2023-38469.patch bsc#1216598 xwang@suse.com -- Reject overly long TXT resource records
|
|
Patch34: avahi-CVE-2023-38469.patch
|
|
# PATCH-FIX-UPSTREAM avahi-CVE-2023-38471.patch bsc#1216594 xwang@suse.com -- Extract host name using avahi_unescape_label
|
|
Patch35: avahi-CVE-2023-38471.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
|