#
# Conditional build:
-%bcond_with dotnet # build with dotnet bindings
+%bcond_without dotnet # build with dotnet bindings
+%bcond_without qt3 # build with qt3 bindings
+%bcond_with qt4 # build with qt4 bindings
+#
+%include /usr/lib/rpm/macros.mono
#
Summary: Free mDNS/DNS-SD implementation
Summary(pl): Wolna implementacja mDNS/DNS-SD
Name: avahi
-Version: 0.6.4
-Release: 0.1
+Version: 0.6.10
+Release: 2
License: GPL v.2/LGPL
Group: Applications
Source0: http://avahi.org/download/%{name}-%{version}.tar.gz
-# Source0-md5: 12eb941043f26f82c51e99821ac52c44
+# Source0-md5: cfb9e05c138dff4c430a35eee6229e8a
Source1: %{name}-daemon
Source2: %{name}-dnsconfd
+Source3: %{name}.png
+Patch0: %{name}-desktop.patch
+Patch1: %{name}-glade.patch
+Patch2: %{name}-destdir.patch
URL: http://avahi.org/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: graphviz
BuildRequires: gtk+2-devel >= 2:2.4.0
BuildRequires: libdaemon-devel >= 0.5
-BuildRequires: libglade2-devel >= 2.4.0
+BuildRequires: libglade2-devel >= 1:2.5.1-5
BuildRequires: libtool
%if %{with dotnet}
-BuildRequires: mono
+BuildRequires: mono-csharp
BuildRequires: monodoc
%endif
+BuildRequires: pkgconfig
BuildRequires: python-dbus
BuildRequires: python-pygtk-devel
-BuildRequires: qt-devel
+%if %{with qt3}
+BuildRequires: qt-devel >= 3.0
+%endif
+%if %{with qt4}
+BuildRequires: QtCore-devel
+BuildRequires: qt4-build
+%endif
BuildRequires: rpmbuild(macros) >= 1.228
Requires(post,preun): /sbin/chkconfig
+Requires: dbus >= 0.60-2
Requires: %{name}-libs = %{version}-%{release}
+Provides: group(avahi)
+Provides: user(avahi)
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-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.
+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.
%description -l pl
-Avahi jest implementacj± specyfikacji DNS Service Discovery
-i Multicast DNS dla Zeroconf Computing. U¿ywa D-BUSa dla komunikacji
+Avahi jest implementacj± specyfikacji DNS Service Discovery i
+Multicast DNS dla Zeroconf Computing. U¿ywa D-BUSa dla komunikacji
pomiêdzy programami u¿ytkownika a demonem systemowym.
%package libs
Summary(pl): Pliki nag³ówkowe biblioteki Avahi
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
+Requires: dbus-devel
Requires: expat-devel
Requires: libdaemon-devel >= 0.5
%description static -l pl
Statyczna biblioteka Avahi.
+%package compat-libdns_sd
+Summary: Avahi Bonjour compat library
+Summary(pl): Biblioteka Avahi zgodna z Bonjour
+Group: Libraries
+Provides: mdns-bonjour
+Obsoletes: mDNSResponder-libs
+
+%description compat-libdns_sd
+Avahi Bonjour compat library.
+
+%description compat-libdns_sd -l pl
+Biblioteka Avahi zgodna z Bonjour.
+
+%package compat-libdns_sd-devel
+Summary: Header files for Avahi Bonjour compat library
+Summary(pl): Pliki nag³ówkowe wi±zañ Avahi dla biblioteki zgodnej z Bonjour
+Group: Development/Libraries
+Requires: %{name}-compat-libdns_sd = %{version}-%{release}
+Requires: %{name}-devel = %{version}-%{release}
+Provides: mdns-bonjour-devel
+Obsoletes: mDNSResponder-devel
+
+%description compat-libdns_sd-devel
+Header files for Avahi Bonjour compat library.
+
+%description compat-libdns_sd-devel -l pl
+Pliki nag³ówkowe wi±zañ Avahi dla biblioteki zgodnej z Bonjour.
+
+%package compat-libdns_sd-static
+Summary: Static Avahi Bonjour compat library
+Summary(pl): Statyczna biblioteka Avahi zgodna z Bonjour
+Group: Development/Libraries
+Requires: %{name}-compat-libdns_sd-devel = %{version}-%{release}
+Provides: mdns-bonjour-static
+
+%description compat-libdns_sd-static
+Static Avahi Bonjour compat library.
+
+%description compat-libdns_sd-static -l pl
+Statyczna biblioteka Avahi zgodna z Bonjour.
+
+%package compat-howl
+Summary: Avahi Howl compat library
+Summary(pl): Biblioteka Avahi zgodna z Howl
+Group: Libraries
+Provides: mdns-howl-libs
+Obsoletes: howl-libs
+
+%description compat-howl
+Avahi Howl compat library.
+
+%description compat-howl -l pl
+Biblioteka Avahi zgodna z Howl.
+
+%package compat-howl-devel
+Summary: Header files for Avahi Howl compat library
+Summary(pl): Pliki nag³ówkowe wi±zañ Avahi dla biblioteki zgodnej z Howl
+Group: Development/Libraries
+Requires: %{name}-compat-howl = %{version}-%{release}
+Requires: %{name}-devel = %{version}-%{release}
+Provides: mdns-howl-devel
+Obsoletes: howl-devel
+
+%description compat-howl-devel
+Header files for Avahi Howl compat library.
+
+%description compat-howl-devel -l pl
+Pliki nag³ówkowe wi±zañ Avahi dla biblioteki zgodnej z Howl.
+
+%package compat-howl-static
+Summary: Static Avahi Howl compat library
+Summary(pl): Statyczna biblioteka Avahi zgodna z Howl
+Group: Development/Libraries
+Requires: %{name}-compat-howl-devel = %{version}-%{release}
+Provides: mdns-howl-static
+Obsoletes: howl-static
+
+%description compat-howl-static
+Static Avahi Howl compat library.
+
+%description compat-howl-static -l pl
+Statyczna biblioteka Avahi zgodna z Howl.
+
%package glib
Summary: Avahi GLib library bindings
Summary(pl): Wi±zania Avahi dla bibioteki GLib
Summary: Header files for Avahi GLib library bindings
Summary(pl): Pliki nag³ówkowe wi±zañ Avahi dla biblioteki GLib
Group: Development/Libraries
-Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-glib = %{version}-%{release}
Requires: glib2-devel >= 1:2.4.0
%description glib-devel
-This is the package containing the header files for Avahi-glib library.
+This is the package containing the header files for Avahi-glib
+library.
%description glib-devel -l pl
Ten pakiet zawiera pliki nag³ówkowe biblioteki Avahi-glib.
%description glib-static -l pl
Statyczna biblioteka Avahi GLib.
-%package qt3
+%package qt
Summary: Avahi Qt 3 library bindings
Summary(pl): Wi±zania Avahi dla biblioteki Qt 3
Group: Libraries
Requires: %{name}-libs = %{version}-%{release}
+Obsoletes: avahi-qt3
-%description qt3
+%description qt
Avahi Qt 3 library bindings.
-%description qt3 -l pl
+%description qt -l pl
Wi±zania Avahi dla biblioteki Qt 3.
-%package qt3-devel
+%package qt-devel
Summary: Header files for Avahi Qt 3 library bindings
-Summary(pl): Pliki nag³ówkowe wi±zañ Avahi dla biblioteki Qt 3
+Summary(pl): Pliki nag³ówkowe wi±zañ Avahi dla biblioteki Qt 3
Group: Development/Libraries
-Requires: %{name}-qt3 = %{version}-%{release}
-Requires: qt-devel
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-qt = %{version}-%{release}
+Requires: qt-devel >= 3.0
+Obsoletes: avahi-qt3-devel
-%description qt3-devel
+%description qt-devel
Header files for Avahi Qt 3 library bindings.
-%description qt3-devel -l pl
+%description qt-devel -l pl
Pliki nag³ówkowe wi±zañ Avahi dla biblioteki Qt 3.
-%package qt3-static
+%package qt-static
Summary: Static Avahi Qt 3 library
Summary(pl): Statyczna biblioteka Avahi Qt 3
Group: Development/Libraries
-Requires: %{name}-qt3-devel = %{version}-%{release}
+Requires: %{name}-qt-devel = %{version}-%{release}
+Obsoletes: avahi-qt3-static
-%description qt3-static
+%description qt-static
Static Avahi Qt 3 library.
-%description qt3-static -l pl
+%description qt-static -l pl
Statyczna biblioteka Avahi Qt 3.
+%package Qt
+Summary: Avahi Qt 4 library bindings
+Summary(pl): Wi±zania Avahi dla biblioteki Qt 4
+Group: Libraries
+Requires: %{name}-libs = %{version}-%{release}
+
+%description Qt
+Avahi Qt 4 library bindings.
+
+%description Qt -l pl
+Wi±zania Avahi dla biblioteki Qt 4.
+
+%package Qt-devel
+Summary: Header files for Avahi Qt 3 library bindings
+Summary(pl): Pliki nag³ówkowe wi±zañ Avahi dla biblioteki Qt 3
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-Qt = %{version}-%{release}
+
+%description Qt-devel
+Header files for Avahi Qt 4 library bindings.
+
+%description Qt-devel -l pl
+Pliki nag³ówkowe wi±zañ Avahi dla biblioteki Qt 4.
+
+%package Qt-static
+Summary: Static Avahi Qt 4 library
+Summary(pl): Statyczna biblioteka Avahi Qt 4
+Group: Development/Libraries
+Requires: %{name}-Qt-devel = %{version}-%{release}
+
+%description Qt-static
+Static Avahi Qt 4 library.
+
+%description Qt-static -l pl
+Statyczna biblioteka Avahi Qt 4.
+
%package -n dotnet-avahi
Summary: Avahi MONO bindings
Summary(pl): Wi±zania Avahi dla MONO
Summary: Development files for MONO Avahi bindings
Summary(pl): Pliki rozwojowe wi±zañ Avahi dla MONO
Group: Development/Libraries
-Requires: %{name}-libs = %{version}-%{release}
+Requires: dotnet-avahi = %{version}-%{release}
+Requires: monodoc
%description -n dotnet-avahi-devel
Development files for MONO Avahi bindings.
%package bookmarks
Summary: Miniature web server
Summary(pl): Miniaturowy serwer web
-Group: Application
+Group: Applications
%description bookmarks
A Python based miniature web server that browses for mDNS/DNS-SD
services of type '_http._tcp' (i.e. web sites) and makes them
-available as HTML links on http://localhost:8080.
-
+available as HTML links on http://localhost:8080/.
+
%description bookmarks -l pl
-Napisany w Pythonie miniaturowy serwer web, pozwalaj±cy nap
-przegl±danie us³ug typu '_http._tcp' (np. stron web) i
-udostêpniaj±cy je jako linki HTML na http://localhost:8080.
+Napisany w Pythonie miniaturowy serwer WWW, pozwalaj±cy na
+przegl±danie us³ug typu '_http._tcp' (np. stron WWW) i udostêpniaj±cy
+je jako odno¶niki HTML na http://localhost:8080/.
%package discover
Summary: Avahi Zeroconf browser
Summary(pl): Przegl±darka Zeroconf Avahi
-Group: Application
+Group: Applications
+Requires: %{name} = %{version}-%{release}
+Requires: python-dbus
+Requires: python-pygtk-glade
%description discover
-A tool for enumerating all available services on the
-local LAN (python-pygtk implementation).
+A tool for enumerating all available services on the local LAN
+(python-pygtk implementation).
%description discover -l pl
-Narzêdzie wymieniaj±ce wszystkie dostêpne us³ugi w sieci
-lokalnej LAN (implementacja w python-pygtk).
+Narzêdzie wymieniaj±ce wszystkie dostêpne us³ugi w sieci lokalnej LAN
+(implementacja w python-pygtk).
%package discover-standalone
Summary: Avahi Zeroconf browser
Summary(pl): Przegl±darka Zeroconf Avahi
-Group: Application
+Group: Applications
+Requires: %{name} = %{version}-%{release}
+Requires: python-dbus
+Requires: python-pygtk-glade
%description discover-standalone
GTK+ tool for enumerating all available services on the local LAN.
%description discover-standalone -l pl
-Narzêdzie GTK+ wymieniaj±ce wszystkie dostêpne us³ugi w sieci
-lokalnej LAN.
+Narzêdzie GTK+ wymieniaj±ce wszystkie dostêpne us³ugi w sieci lokalnej
+LAN.
%package utils
Summary: Avahi CLI utilities
Summary(pl): Narzêdzia CLI Avahi
-Group: Application
+Group: Applications
%description utils
Command line utilities using avahi-client.
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
%{__libtoolize}
%{__autoheader}
%{__automake}
%configure \
+ --enable-compat-libdns_sd \
+ --enable-compat-howl \
--with-distro=none \
- --disable-qt4 \
+ %{!?with_qt3:--disable-qt3} \
+ %{!?with_qt4:--disable-qt4} \
%{!?with_dotnet:--disable-mono} \
%{!?with_dotnet:--disable-monodoc}
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
+install -d $RPM_BUILD_ROOT{%{_pixmapsdir},/etc/rc.d/init.d}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
pythondir=%{py_sitedir}
install %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d
+install %{SOURCE3} $RPM_BUILD_ROOT%{_pixmapsdir}
-#rm -f $RPM_BUILD_ROOT%{py_sitedir}/avahi/*.py
+ln -sf %{_includedir}/avahi-compat-libdns_sd/dns_sd.h \
+ $RPM_BUILD_ROOT%{_includedir}/dns_sd.h
+
+ln -sf %{_pkgconfigdir}/avahi-compat-howl.pc \
+ $RPM_BUILD_ROOT%{_pkgconfigdir}/howl.pc
+
+rm -f $RPM_BUILD_ROOT%{py_sitedir}/avahi/{__init__,SimpleGladeApp}.py
%clean
rm -rf $RPM_BUILD_ROOT
/sbin/chkconfig --del %{name}-daemon
fi
-%postun
-if [ "$1" = "0" ]; then
+%postun
+if [ "$1" = "0" ]; then
%userremove avahi
%groupremove avahi
fi
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
+%post compat-libdns_sd -p /sbin/ldconfig
+%postun compat-libdns_sd -p /sbin/ldconfig
+
+%post compat-howl -p /sbin/ldconfig
+%postun compat-howl -p /sbin/ldconfig
+
%post glib -p /sbin/ldconfig
%postun glib -p /sbin/ldconfig
-%post qt3 -p /sbin/ldconfig
-%postun qt3 -p /sbin/ldconfig
+%post qt -p /sbin/ldconfig
+%postun qt -p /sbin/ldconfig
+
+%post Qt -p /sbin/ldconfig
+%postun Qt -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
%dir %{_sysconfdir}/avahi/services
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/avahi-daemon.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/avahi-dnsconfd.action
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/hosts
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/services/ssh.service
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dbus-1/system.d/*
%attr(755,root,root) %{_sbindir}/avahi-dnsconfd
%dir %{_datadir}/%{name}
-%dir
%dir %{_datadir}/%{name}/introspection
%{_datadir}/%{name}/introspection/*.introspect
%{_datadir}/%{name}/avahi-service.dtd
%{_libdir}/libavahi-common.a
%{_libdir}/libavahi-core.a
-#%files -n dotnet-avahi
-#%defattr(644,root,root,755)
+%files compat-libdns_sd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libdns_sd.so.*.*.*
-#%files -n dotnet-avahi-devel
-#%defattr(644,root,root,755)
+%files compat-libdns_sd-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libdns_sd.so
+%{_libdir}/libdns_sd.la
+%{_includedir}/avahi-compat-libdns_sd
+%{_includedir}/dns_sd.h
+%{_pkgconfigdir}/avahi-compat-libdns_sd.pc
+
+%files compat-libdns_sd-static
+%defattr(644,root,root,755)
+%{_libdir}/libdns_sd.a
+
+%files compat-howl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libhowl.so.*.*.*
+
+%files compat-howl-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libhowl.so
+%{_libdir}/libhowl.la
+%{_includedir}/avahi-compat-howl
+%{_pkgconfigdir}/avahi-compat-howl.pc
+%{_pkgconfigdir}/howl.pc
+
+%files compat-howl-static
+%defattr(644,root,root,755)
+%{_libdir}/libhowl.a
+
+%if %{with dotnet}
+%files -n dotnet-avahi
+%defattr(644,root,root,755)
+%{_prefix}/lib/mono/gac/avahi-sharp
+
+%files -n dotnet-avahi-devel
+%defattr(644,root,root,755)
+%{_libdir}/monodoc/sources/avahi-*
+%{_pkgconfigdir}/avahi-sharp.pc
+%endif
%files glib
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%{_libdir}/libavahi-glib.a
-%files qt3
+%if %{with qt3}
+%files qt
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-qt3.so.*.*.*
-%files qt3-devel
+%files qt-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-qt3.so
%{_libdir}/libavahi-qt3.la
%{_includedir}/avahi-qt3
%{_pkgconfigdir}/avahi-qt3.pc
-%files qt3-static
+%files qt-static
%defattr(644,root,root,755)
%{_libdir}/libavahi-qt3.a
+%endif
+
+%if %{with qt4}
+%files Qt
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libavahi-qt4.so.*.*.*
+
+%files Qt-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libavahi-qt4.so
+%{_libdir}/libavahi-qt4.la
+%{_includedir}/avahi-qt4
+%{_pkgconfigdir}/avahi-qt4.pc
+
+%files Qt-static
+%defattr(644,root,root,755)
+%{_libdir}/libavahi-qt4.a
+%endif
%files bookmarks
%defattr(644,root,root,755)
%files discover
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/avahi-discover
+# XXX: possibly missing %{_datadir}/%{name} dir, shared subdir
+%dir %{_datadir}/%{name}/interfaces
%{_datadir}/%{name}/interfaces/avahi-discover.glade
%{py_sitedir}/avahi
%{_desktopdir}/*.desktop
+%{_pixmapsdir}/avahi.png
%files discover-standalone
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/avahi-discover-standalone
+# XXX: possibly missing %{_datadir}/%{name} dir, shared subdir
+%dir %{_datadir}/%{name}/interfaces
+%{_datadir}/%{name}/interfaces/avahi-discover-standalone.glade
%files utils
%defattr(644,root,root,755)